You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by mb...@apache.org on 2018/03/24 05:18:41 UTC

[08/10] systemml git commit: [SYSTEMML-2191] Cleanup exception hierarchy and handling, part 1

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
index 89e2146..ae5bda3 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
@@ -38,7 +38,6 @@ import org.apache.sysml.hops.Hop.OpOp3;
 import org.apache.sysml.hops.Hop.OpOp4;
 import org.apache.sysml.hops.Hop.ParamBuiltinOp;
 import org.apache.sysml.hops.Hop.ReOrgOp;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.IndexingOp;
 import org.apache.sysml.hops.LeftIndexingOp;
 import org.apache.sysml.hops.LiteralOp;
@@ -87,9 +86,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	private static OpOp2[] LOOKUP_VALID_WUMM_BINARY = new OpOp2[]{OpOp2.MULT, OpOp2.POW}; 
 	
 	@Override
-	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) 
-		throws HopsException
-	{
+	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) {
 		if( roots == null )
 			return roots;
 
@@ -107,9 +104,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 
 	@Override
-	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) 
-		throws HopsException
-	{
+	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) {
 		if( root == null )
 			return root;
 		
@@ -133,10 +128,8 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	 * 
 	 * @param hop high-level operator
 	 * @param descendFirst true if recursively process children first
-	 * @throws HopsException if HopsException occurs
 	 */
 	private void rule_AlgebraicSimplification(Hop hop, boolean descendFirst) 
-		throws HopsException 
 	{
 		if(hop.isVisited())
 			return;
@@ -207,7 +200,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop removeEmptyRightIndexing(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		if( hi instanceof IndexingOp && hi.getDataType()==DataType.MATRIX  ) //indexing op
 		{	
@@ -245,7 +237,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop removeEmptyLeftIndexing(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		if( hi instanceof LeftIndexingOp && hi.getDataType() == DataType.MATRIX  ) //left indexing op
 		{
@@ -449,7 +440,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 		return hi;
 	}
 	
-	private static Hop removeUnnecessaryIfElseOperation(Hop parent, Hop hi, int pos) throws HopsException
+	private static Hop removeUnnecessaryIfElseOperation(Hop parent, Hop hi, int pos)
 	{
 		if( !HopRewriteUtils.isTernary(hi, OpOp3.IFELSE) )
 			return hi;
@@ -530,9 +521,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 
 	@SuppressWarnings("unchecked")
-	private static Hop simplifyColwiseAggregate( Hop parent, Hop hi, int pos ) 
-		throws HopsException
-	{
+	private static Hop simplifyColwiseAggregate( Hop parent, Hop hi, int pos ) {
 		if( hi instanceof AggUnaryOp  ) 
 		{
 			AggUnaryOp uhi = (AggUnaryOp)hi;
@@ -594,9 +583,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 
 	@SuppressWarnings("unchecked")
-	private static Hop simplifyRowwiseAggregate( Hop parent, Hop hi, int pos ) 
-		throws HopsException
-	{
+	private static Hop simplifyRowwiseAggregate( Hop parent, Hop hi, int pos ) {
 		if( hi instanceof AggUnaryOp  ) 
 		{
 			AggUnaryOp uhi = (AggUnaryOp)hi;
@@ -661,7 +648,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyColSumsMVMult( Hop parent, Hop hi, int pos ) 
-		throws HopsException
 	{
 		//colSums(X*Y) -> t(Y) %*% X, if Y col vector; additional transpose later
 		//removed by other rewrite if unnecessary, i.e., if Y==t(Z)
@@ -697,7 +683,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyRowSumsMVMult( Hop parent, Hop hi, int pos ) 
-		throws HopsException
 	{
 		//rowSums(X * Y) -> X %*% t(Y), if Y row vector; additional transpose later
 		//removed by other rewrite if unnecessary, i.e., if Y==t(Z)
@@ -733,7 +718,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyUnnecessaryAggregate(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		//e.g., sum(X) -> as.scalar(X) if 1x1 (applies to sum, min, max, prod, trace)
 		if( hi instanceof AggUnaryOp && ((AggUnaryOp)hi).getDirection()==Direction.RowCol  ) 
@@ -760,7 +744,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyEmptyAggregate(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		if( hi instanceof AggUnaryOp  ) 
 		{
@@ -790,7 +773,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyEmptyUnaryOperation(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		if( hi instanceof UnaryOp  ) 
 		{
@@ -815,7 +797,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyEmptyReorgOperation(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		if( hi instanceof ReorgOp  ) 
 		{
@@ -857,7 +838,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyEmptySortOperation(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		//order(X, indexreturn=FALSE) -> matrix(0,nrow(X),1)
 		//order(X, indexreturn=TRUE) -> seq(1,nrow(X),1)
@@ -895,9 +875,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 		return hi;
 	}
 	
-	private static Hop simplifyEmptyMatrixMult(Hop parent, Hop hi, int pos) 
-		throws HopsException
-	{
+	private static Hop simplifyEmptyMatrixMult(Hop parent, Hop hi, int pos) {
 		if( HopRewriteUtils.isMatrixMultiply(hi) ) //X%*%Y -> matrix(0, )
 		{
 			Hop left = hi.getInput().get(0);
@@ -919,7 +897,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyIdentityRepMatrixMult(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		if( HopRewriteUtils.isMatrixMultiply(hi) ) //X%*%Y -> X, if y is matrix(1,1,1)
 		{
@@ -942,7 +919,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyScalarMatrixMult(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		if( HopRewriteUtils.isMatrixMultiply(hi) ) //X%*%Y
 		{
@@ -981,7 +957,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyMatrixMultDiag(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		Hop hnew = null;
 		
@@ -1233,10 +1208,8 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	 * @param hi high-level operator
 	 * @param pos position
 	 * @return high-level operator
-	 * @throws HopsException if HopsException occurs
 	 */
 	private static Hop simplifyWeightedSquaredLoss(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		//NOTE: there might be also a general simplification without custom operator
 		//via (X-UVt)^2 -> X^2 - 2X*UVt + UVt^2
@@ -1424,7 +1397,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyWeightedSigmoidMMChains(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		Hop hnew = null;
 		
@@ -1559,9 +1531,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 		return hi;
 	}
 
-	private static Hop simplifyWeightedDivMM(Hop parent, Hop hi, int pos) 
-		throws HopsException
-	{
+	private static Hop simplifyWeightedDivMM(Hop parent, Hop hi, int pos) {
 		Hop hnew = null;
 		boolean appliedPattern = false;
 		
@@ -1875,7 +1845,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 
 	private static Hop simplifyWeightedCrossEntropy(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		Hop hnew = null;
 		boolean appliedPattern = false;
@@ -1951,9 +1920,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 		return hi;
 	}
 	
-	private static Hop simplifyWeightedUnaryMM(Hop parent, Hop hi, int pos) 
-		throws HopsException
-	{
+	private static Hop simplifyWeightedUnaryMM(Hop parent, Hop hi, int pos) {
 		Hop hnew = null;
 		boolean appliedPattern = false;
 		
@@ -2103,11 +2070,8 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	 * @param hi high-level operator
 	 * @param pos position
 	 * @return high-level operator
-	 * @throws HopsException if HopsException occurs
 	 */
-	private static Hop simplifyDotProductSum(Hop parent, Hop hi, int pos) 
-		throws HopsException
-	{
+	private static Hop simplifyDotProductSum(Hop parent, Hop hi, int pos) {
 		//sum(v^2)/sum(v1*v2) --> as.scalar(t(v)%*%v) in order to exploit tsmm vector dotproduct 
 		//w/o materialization of intermediates
 		if( hi instanceof AggUnaryOp && ((AggUnaryOp)hi).getOp()==AggOp.SUM //sum
@@ -2176,11 +2140,8 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	 * @param pos Position of hi in parent's list of inputs.
 	 *
 	 * @return Either hi or the rewritten HOP replacing it.
-	 *
-	 * @throws HopsException if HopsException occurs
 	 */
-	private static Hop fuseSumSquared(Hop parent, Hop hi, int pos)
-			throws HopsException {
+	private static Hop fuseSumSquared(Hop parent, Hop hi, int pos) {
 		// if SUM
 		if (hi instanceof AggUnaryOp && ((AggUnaryOp) hi).getOp() == AggOp.SUM) {
 			Hop sumInput = hi.getInput().get(0);
@@ -2267,7 +2228,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyEmptyBinaryOperation(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		if( hi instanceof BinaryOp ) //b(?) X Y
 		{
@@ -2347,11 +2307,9 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	 * @param hi high-level operator
 	 * @param pos position
 	 * @return high-level operator
-	 * @throws HopsException if HopsException occurs
 	 */
 	@SuppressWarnings("unchecked")
 	private static Hop reorderMinusMatrixMult(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		if( HopRewriteUtils.isMatrixMultiply(hi) ) //X%*%Y
 		{
@@ -2486,7 +2444,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyScalarMVBinaryOperation(Hop hi) 
-		throws HopsException
 	{
 		if( hi instanceof BinaryOp && ((BinaryOp)hi).supportsMatrixScalarOperations() //e.g., X * s
 			&& hi.getInput().get(0).getDataType()==DataType.MATRIX 
@@ -2509,7 +2466,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyNnzComputation(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		//sum(ppred(X,0,"!=")) -> literal(nnz(X)), if nnz known		
 		if(    hi instanceof AggUnaryOp && ((AggUnaryOp)hi).getOp()==AggOp.SUM  //sum
@@ -2544,7 +2500,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyNrowNcolComputation(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		//nrow(X) -> literal(nrow(X)), ncol(X) -> literal(ncol(X)), if respective dims known
 		//(this rewrite aims to remove unnecessary data dependencies to X which trigger computation
@@ -2573,7 +2528,6 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyTableSeqExpand(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		//pattern: table(seq(1,nrow(v)), v, nrow(v), m) -> rexpand(v, max=m, dir=row, ignore=false, cast=true)
 		//note: this rewrite supports both left/right sequence 

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationStatic.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationStatic.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationStatic.java
index 3a3235d..a75167c 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationStatic.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationStatic.java
@@ -41,7 +41,6 @@ import org.apache.sysml.hops.Hop.OpOp3;
 import org.apache.sysml.hops.Hop.OpOpN;
 import org.apache.sysml.hops.Hop.ParamBuiltinOp;
 import org.apache.sysml.hops.Hop.ReOrgOp;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.LiteralOp;
 import org.apache.sysml.hops.NaryOp;
 import org.apache.sysml.hops.OptimizerUtils;
@@ -82,7 +81,6 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	
 	@Override
 	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) 
-		throws HopsException
 	{
 		if( roots == null )
 			return roots;
@@ -102,7 +100,6 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 
 	@Override
 	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) 
-		throws HopsException
 	{
 		if( root == null )
 			return root;
@@ -127,10 +124,8 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	 * 
 	 * @param hop high-level operator
 	 * @param descendFirst if process children recursively first
-	 * @throws HopsException if HopsException occurs
 	 */
 	private void rule_AlgebraicSimplification(Hop hop, boolean descendFirst) 
-		throws HopsException 
 	{
 		if(hop.isVisited())
 			return;
@@ -260,10 +255,8 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	 * @param hi high-level operator
 	 * @param pos position
 	 * @return high-level operator
-	 * @throws HopsException if HopsException occurs
 	 */
 	private static Hop removeUnnecessaryBinaryOperation( Hop parent, Hop hi, int pos ) 
-		throws HopsException
 	{
 		if( hi instanceof BinaryOp )
 		{
@@ -348,11 +341,9 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	 * 
 	 * @param hi high-order operation
 	 * @return high-level operator
-	 * @throws HopsException if HopsException occurs
 	 */
 	@SuppressWarnings("incomplete-switch")
 	private static Hop fuseDatagenAndBinaryOperation( Hop hi ) 
-		throws HopsException
 	{
 		if( hi instanceof BinaryOp )
 		{
@@ -480,7 +471,6 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	}
 	
 	private static Hop fuseDatagenAndMinusOperation( Hop hi ) 
-		throws HopsException
 	{
 		if( hi instanceof BinaryOp )
 		{
@@ -530,7 +520,6 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	}
 	
 	private static Hop foldMultipleAppendOperations(Hop hi) 
-		throws HopsException
 	{
 		if( hi.getDataType().isMatrix() //no string appends or frames
 			&& (HopRewriteUtils.isBinary(hi, OpOp2.CBIND, OpOp2.RBIND) 
@@ -588,10 +577,8 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	 * @param hi high-level operator
 	 * @param pos position
 	 * @return high-level operator
-	 * @throws HopsException if HopsException occurs
 	 */
 	private static Hop simplifyBinaryToUnaryOperation( Hop parent, Hop hi, int pos ) 
-		throws HopsException
 	{
 		if( hi instanceof BinaryOp )
 		{
@@ -648,10 +635,8 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	 * 
 	 * @param hi high-level operator
 	 * @return high-level operator
-	 * @throws HopsException if HopsException occurs
 	 */
 	private static Hop canonicalizeMatrixMultScalarAdd( Hop hi ) 
-		throws HopsException
 	{
 		//pattern: binary operation (+ or -) of matrix mult and scalar 
 		if( hi instanceof BinaryOp )
@@ -684,7 +669,6 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyCTableWithConstMatrixInputs( Hop hi ) 
-		throws HopsException
 	{
 		//pattern: table(X, matrix(1,...), matrix(7, ...)) -> table(X, 1, 7)
 		if( HopRewriteUtils.isTernary(hi, OpOp3.CTABLE) ) {
@@ -711,10 +695,8 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	 * @param hi high-level operator
 	 * @param pos position
 	 * @return high-level operator
-	 * @throws HopsException if HopsException occurs
 	 */
 	private static Hop simplifyReverseOperation( Hop parent, Hop hi, int pos ) 
-		throws HopsException
 	{
 		if(    hi instanceof AggBinaryOp 
 			&& hi.getInput().get(0) instanceof TernaryOp )
@@ -970,7 +952,6 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyBinaryMatrixScalarOperation( Hop parent, Hop hi, int pos ) 
-		throws HopsException
 	{
 		// Note: This rewrite is not applicable for all binary operations because some of them 
 		// are undefined over scalars. We explicitly exclude potential conflicting matrix-scalar binary
@@ -1083,7 +1064,7 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 		return hi;
 	}
 
-	private static Hop pushdownSumBinaryMult(Hop parent, Hop hi, int pos ) throws HopsException {
+	private static Hop pushdownSumBinaryMult(Hop parent, Hop hi, int pos ) {
 		//pattern:  sum(lamda*X) -> lamda*sum(X)
 		if( hi instanceof AggUnaryOp && ((AggUnaryOp)hi).getDirection()==Direction.RowCol
 				&& ((AggUnaryOp)hi).getOp()==Hop.AggOp.SUM // only one parent which is the sum
@@ -1173,10 +1154,8 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	 * @param parent parent high-level operator
 	 * @param hi high-level operator
 	 * @param pos position
-	 * @throws HopsException if HopsException occurs
 	 */
 	private static Hop fuseBinarySubDAGToUnaryOperation( Hop parent, Hop hi, int pos ) 
-		throws HopsException
 	{
 		if( hi instanceof BinaryOp )
 		{
@@ -1361,7 +1340,6 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	}
 	
 	private static Hop simplifySlicedMatrixMult(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		//e.g., (X%*%Y)[1,1] -> X[1,] %*% Y[,1] 
 		if( hi instanceof IndexingOp 
@@ -1402,7 +1380,6 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	}
 
 	private static Hop simplifyConstantSort(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		//order(matrix(7), indexreturn=FALSE) -> matrix(7)
 		//order(matrix(7), indexreturn=TRUE) -> seq(1,nrow(X),1)
@@ -1441,7 +1418,6 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	}
 	
 	private static Hop simplifyOrderedSort(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		//order(seq(2,N+1,1), indexreturn=FALSE) -> matrix(7)
 		//order(seq(2,N+1,1), indexreturn=TRUE) -> seq(1,N,1)/seq(N,1,-1)
@@ -1486,7 +1462,6 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	}
 
 	private static Hop fuseOrderOperationChain(Hop hi) 
-		throws HopsException
 	{
 		//order(order(X,2),1) -> order(X, (12)), 
 		if( HopRewriteUtils.isReorg(hi, ReOrgOp.SORT)
@@ -1550,10 +1525,8 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	 * @param hi high-level operator
 	 * @param pos position
 	 * @return high-level operator
-	 * @throws HopsException if HopsException occurs
 	 */
 	private static Hop simplifyTransposeAggBinBinaryChains(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		if( HopRewriteUtils.isTransposeOperation(hi)
 			&& hi.getInput().get(0) instanceof BinaryOp                       //basic binary
@@ -1588,7 +1561,6 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	
 	// Patterns: X + (X==0) * s -> replace(X, 0, s)
 	private static Hop simplifyReplaceZeroOperation(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		if( HopRewriteUtils.isBinary(hi, OpOp2.PLUS) && hi.getInput().get(0).isMatrix()
 			&& HopRewriteUtils.isBinary(hi.getInput().get(1), OpOp2.MULT)
@@ -1641,7 +1613,6 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	}
 
 	private static Hop removeUnnecessaryMinus(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		if( hi.getDataType() == DataType.MATRIX && hi instanceof BinaryOp 
 			&& ((BinaryOp)hi).getOp()==OpOp2.MINUS  						//first minus
@@ -1696,7 +1667,6 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	}
 	
 	private static Hop fuseMinusNzBinaryOperation(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		//pattern X - (s * ppred(X,0,!=)) -> X -nz s
 		//note: this is done as a hop rewrite in order to significantly reduce the 
@@ -1730,7 +1700,6 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	}
 	
 	private static Hop fuseLogNzUnaryOperation(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		//pattern ppred(X,0,"!=")*log(X) -> log_nz(X)
 		//note: this is done as a hop rewrite in order to significantly reduce the 
@@ -1762,7 +1731,6 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	}
 
 	private static Hop fuseLogNzBinaryOperation(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		//pattern ppred(X,0,"!=")*log(X,0.5) -> log_nz(X,0.5)
 		//note: this is done as a hop rewrite in order to significantly reduce the 
@@ -1795,7 +1763,6 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	}
 
 	private static Hop simplifyOuterSeqExpand(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		//pattern: outer(v, t(seq(1,m)), "==") -> rexpand(v, max=m, dir=row, ignore=true, cast=false)
 		//note: this rewrite supports both left/right sequence 
@@ -1848,11 +1815,9 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
 	 * @param hi high-level operator
 	 * @param pos position
 	 * @return high-level operator
-	 * @throws HopsException if HopsException occurs
 	 */
 	@SuppressWarnings("unused")
 	private static Hop removeUnecessaryPPred(Hop parent, Hop hi, int pos) 
-		throws HopsException
 	{
 		if( hi instanceof BinaryOp )
 		{

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteBlockSizeAndReblock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteBlockSizeAndReblock.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteBlockSizeAndReblock.java
index 245a333..2c102cc 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteBlockSizeAndReblock.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteBlockSizeAndReblock.java
@@ -43,7 +43,6 @@ public class RewriteBlockSizeAndReblock extends HopRewriteRule
 	
 	@Override
 	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state)
-		throws HopsException
 	{
 		if( roots == null )
 			return null;
@@ -61,7 +60,6 @@ public class RewriteBlockSizeAndReblock extends HopRewriteRule
 
 	@Override
 	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) 
-		throws HopsException
 	{
 		if( root == null )
 			return null;
@@ -77,7 +75,6 @@ public class RewriteBlockSizeAndReblock extends HopRewriteRule
 	}
 
 	private void rule_BlockSizeAndReblock(Hop hop, final int blocksize) 
-		throws HopsException 
 	{
 		// Go to the source(s) of the DAG
 		for (Hop hi : hop.getInput()) {

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteCommonSubexpressionElimination.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteCommonSubexpressionElimination.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteCommonSubexpressionElimination.java
index f8d812a..686c563 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteCommonSubexpressionElimination.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteCommonSubexpressionElimination.java
@@ -24,7 +24,6 @@ import java.util.HashMap;
 
 import org.apache.sysml.hops.DataOp;
 import org.apache.sysml.hops.Hop;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.LiteralOp;
 
 /**
@@ -51,7 +50,6 @@ public class RewriteCommonSubexpressionElimination extends HopRewriteRule
 	
 	@Override
 	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) 
-		throws HopsException
 	{
 		if( roots == null )
 			return null;
@@ -63,7 +61,7 @@ public class RewriteCommonSubexpressionElimination extends HopRewriteRule
 			int cseMerged = 0;
 			if( _mergeLeafs ) {
 				cseMerged += rule_CommonSubexpressionElimination_MergeLeafs(h, dataops, literalops);
-				h.resetVisitStatus();		
+				h.resetVisitStatus();
 			}
 			cseMerged += rule_CommonSubexpressionElimination(h);
 				
@@ -76,7 +74,6 @@ public class RewriteCommonSubexpressionElimination extends HopRewriteRule
 
 	@Override
 	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) 
-		throws HopsException 
 	{
 		if( root == null )
 			return null;
@@ -97,7 +94,6 @@ public class RewriteCommonSubexpressionElimination extends HopRewriteRule
 	}
 	
 	private int rule_CommonSubexpressionElimination_MergeLeafs( Hop hop, HashMap<String, Hop> dataops, HashMap<String, Hop> literalops ) 
-		throws HopsException 
 	{
 		int ret = 0;
 		if( hop.isVisited() )
@@ -159,7 +155,6 @@ public class RewriteCommonSubexpressionElimination extends HopRewriteRule
 	}
 
 	private int rule_CommonSubexpressionElimination( Hop hop ) 
-		throws HopsException 
 	{
 		int ret = 0;
 		if( hop.isVisited() )
@@ -219,5 +214,4 @@ public class RewriteCommonSubexpressionElimination extends HopRewriteRule
 
 		return ret;
 	}
-
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteCompressedReblock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteCompressedReblock.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteCompressedReblock.java
index b24a178..ff310dd 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteCompressedReblock.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteCompressedReblock.java
@@ -29,7 +29,6 @@ import org.apache.sysml.conf.DMLConfig;
 import org.apache.sysml.hops.AggBinaryOp;
 import org.apache.sysml.hops.FunctionOp;
 import org.apache.sysml.hops.Hop;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.OptimizerUtils;
 import org.apache.sysml.hops.Hop.AggOp;
 import org.apache.sysml.hops.Hop.DataOpTypes;
@@ -69,7 +68,6 @@ public class RewriteCompressedReblock extends StatementBlockRewriteRule
 	
 	@Override
 	public List<StatementBlock> rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus sate)
-		throws HopsException 
 	{
 		//check for inapplicable statement blocks
 		if( !HopRewriteUtils.isLastLevelStatementBlock(sb)
@@ -92,15 +90,11 @@ public class RewriteCompressedReblock extends StatementBlockRewriteRule
 	}
 
 	@Override
-	public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)
-		throws HopsException 
-	{
+	public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate) {
 		return sbs;
 	}
 	
-	private static void injectCompressionDirective(Hop hop, CompressConfig compress, DMLProgram prog) 
-		throws HopsException 
-	{
+	private static void injectCompressionDirective(Hop hop, CompressConfig compress, DMLProgram prog) {
 		if( hop.isVisited() || hop.requiresCompression() )
 			return;
 		
@@ -122,9 +116,7 @@ public class RewriteCompressedReblock extends StatementBlockRewriteRule
 			&& hop.getDim1() > 1 && hop.getDim2() > 1; //multi-column matrix
 	}
 	
-	private static boolean satisfiesAutoCompressionCondition(Hop hop, DMLProgram prog) 
-		throws HopsException 
-	{
+	private static boolean satisfiesAutoCompressionCondition(Hop hop, DMLProgram prog) {
 		//check for basic compression condition
 		if( !(satisfiesCompressionCondition(hop) 
 			&& OptimizerUtils.isSparkExecutionMode()) )
@@ -169,7 +161,6 @@ public class RewriteCompressedReblock extends StatementBlockRewriteRule
 	}
 	
 	private static void rAnalyzeProgram(StatementBlock sb, ProbeStatus status) 
-		throws HopsException 
 	{
 		if(sb instanceof FunctionStatementBlock) {
 			FunctionStatementBlock fsb = (FunctionStatementBlock) sb;
@@ -216,7 +207,6 @@ public class RewriteCompressedReblock extends StatementBlockRewriteRule
 	}
 	
 	private static void rAnalyzeHopDag(Hop current, ProbeStatus status) 
-		throws HopsException 
 	{
 		if( current.isVisited() )
 			return;

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteConstantFolding.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteConstantFolding.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteConstantFolding.java
index 7684c78..9a1e76d 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteConstantFolding.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteConstantFolding.java
@@ -19,7 +19,6 @@
 
 package org.apache.sysml.hops.rewrite;
 
-import java.io.IOException;
 import java.util.ArrayList;
 
 import org.apache.sysml.conf.ConfigurationManager;
@@ -34,10 +33,8 @@ import org.apache.sysml.hops.LiteralOp;
 import org.apache.sysml.hops.UnaryOp;
 import org.apache.sysml.hops.recompile.Recompiler;
 import org.apache.sysml.lops.Lop;
-import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.lops.compile.Dag;
 import org.apache.sysml.parser.Expression.DataType;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.Program;
 import org.apache.sysml.runtime.controlprogram.ProgramBlock;
 import org.apache.sysml.runtime.controlprogram.context.ExecutionContext;
@@ -62,39 +59,28 @@ public class RewriteConstantFolding extends HopRewriteRule
 	
 	
 	@Override
-	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) 
-		throws HopsException 
-	{
+	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) {
 		if( roots == null )
 			return null;
-
 		for( int i=0; i<roots.size(); i++ ) {
 			Hop h = roots.get(i);
 			roots.set(i, rule_ConstantFolding(h));
 		}
-		
 		return roots;
 	}
 
 	@Override
-	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) 
-		throws HopsException 
-	{
+	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) {
 		if( root == null )
 			return null;
-
 		return rule_ConstantFolding(root);
 	}
 
-	private Hop rule_ConstantFolding( Hop hop ) 
-		throws HopsException 
-	{
+	private Hop rule_ConstantFolding( Hop hop ) {
 		return rConstantFoldingExpression(hop);
 	}
 
-	private Hop rConstantFoldingExpression( Hop root ) 
-		throws HopsException
-	{
+	private Hop rConstantFoldingExpression( Hop root ) {
 		if( root.isVisited() )
 			return root;
 		
@@ -175,13 +161,8 @@ public class RewriteConstantFolding extends HopRewriteRule
 	 * 
 	 * @param bop high-level operator
 	 * @return literal op
-	 * @throws LopsException if LopsException occurs
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
-	 * @throws IOException if IOException occurs
-	 * @throws HopsException if HopsException occurs
 	 */
 	private LiteralOp evalScalarOperation( Hop bop ) 
-		throws LopsException, DMLRuntimeException, IOException, HopsException
 	{
 		//Timing time = new Timing( true );
 		
@@ -228,16 +209,13 @@ public class RewriteConstantFolding extends HopRewriteRule
 		return literal;
 	}
 	
-	private ProgramBlock getProgramBlock() 
-		throws DMLRuntimeException
-	{
+	private ProgramBlock getProgramBlock() {
 		if( _tmpPB == null )
 			_tmpPB = new ProgramBlock( new Program() );
 		return _tmpPB;
 	}
 	
-	private ExecutionContext getExecutionContext()
-	{
+	private ExecutionContext getExecutionContext() {
 		if( _tmpEC == null )
 			_tmpEC = ExecutionContextFactory.createContext();
 		return _tmpEC;
@@ -266,14 +244,14 @@ public class RewriteConstantFolding extends HopRewriteRule
 				&& hop.getDataType() == DataType.SCALAR);
 	}
 	
-	private static boolean isApplicableFalseConjunctivePredicate( Hop hop ) throws HopsException {
+	private static boolean isApplicableFalseConjunctivePredicate( Hop hop ) {
 		ArrayList<Hop> in = hop.getInput();
 		return (   HopRewriteUtils.isBinary(hop, OpOp2.AND) && hop.getDataType().isScalar()
 				&& ( (in.get(0) instanceof LiteralOp && !((LiteralOp)in.get(0)).getBooleanValue())
 				   ||(in.get(1) instanceof LiteralOp && !((LiteralOp)in.get(1)).getBooleanValue())) );
 	}
 	
-	private static boolean isApplicableTrueDisjunctivePredicate( Hop hop ) throws HopsException {
+	private static boolean isApplicableTrueDisjunctivePredicate( Hop hop ) {
 		ArrayList<Hop> in = hop.getInput();
 		return (   HopRewriteUtils.isBinary(hop, OpOp2.OR) && hop.getDataType().isScalar()
 				&& ( (in.get(0) instanceof LiteralOp && ((LiteralOp)in.get(0)).getBooleanValue())

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteElementwiseMultChainOptimization.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteElementwiseMultChainOptimization.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteElementwiseMultChainOptimization.java
index ca7ef2e..a5d8b06 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteElementwiseMultChainOptimization.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteElementwiseMultChainOptimization.java
@@ -31,7 +31,6 @@ import java.util.TreeSet;
 
 import org.apache.sysml.hops.BinaryOp;
 import org.apache.sysml.hops.Hop;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.LiteralOp;
 import org.apache.sysml.parser.Expression;
 
@@ -56,7 +55,7 @@ import org.apache.sysml.parser.Expression;
  */
 public class RewriteElementwiseMultChainOptimization extends HopRewriteRule {
 	@Override
-	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) throws HopsException {
+	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) {
 		if( roots == null )
 			return null;
 		for( int i=0; i<roots.size(); i++ ) {
@@ -67,7 +66,7 @@ public class RewriteElementwiseMultChainOptimization extends HopRewriteRule {
 	}
 
 	@Override
-	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) throws HopsException {
+	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) {
 		if( root == null )
 			return null;
 		return rule_RewriteEMult(root);

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteForLoopVectorization.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteForLoopVectorization.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteForLoopVectorization.java
index cade354..0064a6c 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteForLoopVectorization.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteForLoopVectorization.java
@@ -29,7 +29,6 @@ import org.apache.sysml.hops.Hop;
 import org.apache.sysml.hops.Hop.AggOp;
 import org.apache.sysml.hops.Hop.Direction;
 import org.apache.sysml.hops.Hop.OpOp1;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.IndexingOp;
 import org.apache.sysml.hops.LeftIndexingOp;
 import org.apache.sysml.hops.LiteralOp;
@@ -60,7 +59,6 @@ public class RewriteForLoopVectorization extends StatementBlockRewriteRule
 	
 	@Override
 	public List<StatementBlock> rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)
-		throws HopsException 
 	{
 		if( sb instanceof ForStatementBlock )
 		{
@@ -102,13 +100,11 @@ public class RewriteForLoopVectorization extends StatementBlockRewriteRule
 	}
 	
 	@Override
-	public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, 
-			ProgramRewriteStatus sate) throws HopsException {
+	public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate) {
 		return sbs;
 	}
 	
 	private static StatementBlock vectorizeScalarAggregate( StatementBlock sb, StatementBlock csb, Hop from, Hop to, Hop increment, String itervar ) 
-		throws HopsException
 	{
 		StatementBlock ret = sb;
 		
@@ -210,7 +206,6 @@ public class RewriteForLoopVectorization extends StatementBlockRewriteRule
 	}
 	
 	private static StatementBlock vectorizeElementwiseBinary( StatementBlock sb, StatementBlock csb, Hop from, Hop to, Hop increment, String itervar ) 
-		throws HopsException
 	{
 		StatementBlock ret = sb;
 		
@@ -294,7 +289,6 @@ public class RewriteForLoopVectorization extends StatementBlockRewriteRule
 	}
 	
 	private static StatementBlock vectorizeElementwiseUnary( StatementBlock sb, StatementBlock csb, Hop from, Hop to, Hop increment, String itervar )
-		throws HopsException
 	{
 		StatementBlock ret = sb;
 		
@@ -354,7 +348,6 @@ public class RewriteForLoopVectorization extends StatementBlockRewriteRule
 	}
 	
 	private static StatementBlock vectorizeIndexedCopy( StatementBlock sb, StatementBlock csb, Hop from, Hop to, Hop increment, String itervar )
-		throws HopsException
 	{
 		StatementBlock ret = sb;
 		

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteIndexingVectorization.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteIndexingVectorization.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteIndexingVectorization.java
index e2097e2..621daae 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteIndexingVectorization.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteIndexingVectorization.java
@@ -26,7 +26,6 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sysml.hops.Hop;
 import org.apache.sysml.hops.Hop.OpOp2;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.IndexingOp;
 import org.apache.sysml.hops.LeftIndexingOp;
 import org.apache.sysml.hops.LiteralOp;
@@ -47,33 +46,23 @@ public class RewriteIndexingVectorization extends HopRewriteRule
 	private static final Log LOG = LogFactory.getLog(RewriteIndexingVectorization.class.getName());
 	
 	@Override
-	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) 
-		throws HopsException
-	{
+	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) {
 		if( roots == null )
 			return roots;
-		
 		for( Hop h : roots )
 			rule_IndexingVectorization( h );
-		
 		return roots;
 	}
 
 	@Override
-	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) 
-		throws HopsException
-	{
+	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) {
 		if( root == null )
 			return root;
-		
 		rule_IndexingVectorization( root );
-		
 		return root;
 	}
 
-	private void rule_IndexingVectorization( Hop hop ) 
-		throws HopsException 
-	{
+	private void rule_IndexingVectorization( Hop hop ) {
 		if(hop.isVisited())
 			return;
 		
@@ -96,9 +85,7 @@ public class RewriteIndexingVectorization extends HopRewriteRule
 		hop.setVisited();
 	}
 
-	private static Hop vectorizeRightLeftIndexingChains(Hop hi)
-		throws HopsException
-	{
+	private static Hop vectorizeRightLeftIndexingChains(Hop hi) {
 		//check for valid root operator
 		if( !(hi instanceof LeftIndexingOp 
 			&& hi.getInput().get(1) instanceof IndexingOp
@@ -184,11 +171,9 @@ public class RewriteIndexingVectorization extends HopRewriteRule
 	 * dynamic rewrites
 	 * 
 	 * @param hop high-level operator
-	 * @throws HopsException if HopsException occurs
 	 */
 	@SuppressWarnings("unused")
 	private static void vectorizeRightIndexing( Hop hop )
-		throws HopsException
 	{
 		if( hop instanceof IndexingOp ) //right indexing
 		{
@@ -276,7 +261,6 @@ public class RewriteIndexingVectorization extends HopRewriteRule
 	
 	@SuppressWarnings("unchecked")
 	private static Hop vectorizeLeftIndexing( Hop hop )
-		throws HopsException
 	{
 		Hop ret = hop;
 		

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteInjectSparkLoopCheckpointing.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteInjectSparkLoopCheckpointing.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteInjectSparkLoopCheckpointing.java
index 50a5579..6c3ad76 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteInjectSparkLoopCheckpointing.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteInjectSparkLoopCheckpointing.java
@@ -25,7 +25,6 @@ import java.util.List;
 
 import org.apache.sysml.hops.DataOp;
 import org.apache.sysml.hops.Hop;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.Hop.DataOpTypes;
 import org.apache.sysml.hops.OptimizerUtils;
 import org.apache.sysml.parser.DataIdentifier;
@@ -60,7 +59,6 @@ public class RewriteInjectSparkLoopCheckpointing extends StatementBlockRewriteRu
 	
 	@Override
 	public List<StatementBlock> rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status)
-		throws HopsException 
 	{
 		if( !OptimizerUtils.isSparkExecutionMode() ) {
 			// nothing to do here, return original statement block
@@ -130,8 +128,7 @@ public class RewriteInjectSparkLoopCheckpointing extends StatementBlockRewriteRu
 	}
 	
 	@Override
-	public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, 
-			ProgramRewriteStatus sate) throws HopsException {
+	public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate) {
 		return sbs;
 	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteInjectSparkPReadCheckpointing.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteInjectSparkPReadCheckpointing.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteInjectSparkPReadCheckpointing.java
index 7ee3506..3f43431 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteInjectSparkPReadCheckpointing.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteInjectSparkPReadCheckpointing.java
@@ -24,7 +24,6 @@ import java.util.ArrayList;
 import org.apache.sysml.hops.DataOp;
 import org.apache.sysml.hops.Hop;
 import org.apache.sysml.hops.Hop.DataOpTypes;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.OptimizerUtils;
 
 /**
@@ -36,9 +35,7 @@ import org.apache.sysml.hops.OptimizerUtils;
 public class RewriteInjectSparkPReadCheckpointing extends HopRewriteRule
 {
 	@Override
-	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state)
-		throws HopsException
-	{
+	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) {
 		if(  !OptimizerUtils.isSparkExecutionMode()  ) 
 			return roots;
 		
@@ -53,15 +50,12 @@ public class RewriteInjectSparkPReadCheckpointing extends HopRewriteRule
 	}
 
 	@Override
-	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) 
-		throws HopsException
-	{
+	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) {
 		//not applicable to predicates (we do not allow persistent reads there)
 		return root;
 	}
 
 	private void rInjectCheckpointAfterPRead( Hop hop ) 
-		throws HopsException 
 	{
 		if(hop.isVisited())
 			return;

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteMarkLoopVariablesUpdateInPlace.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteMarkLoopVariablesUpdateInPlace.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteMarkLoopVariablesUpdateInPlace.java
index 79683fb..c3dd512 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteMarkLoopVariablesUpdateInPlace.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteMarkLoopVariablesUpdateInPlace.java
@@ -28,7 +28,6 @@ import org.apache.sysml.api.DMLScript.RUNTIME_PLATFORM;
 import org.apache.sysml.hops.DataOp;
 import org.apache.sysml.hops.Hop;
 import org.apache.sysml.hops.Hop.OpOp1;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.LeftIndexingOp;
 import org.apache.sysml.hops.UnaryOp;
 import org.apache.sysml.parser.ForStatement;
@@ -55,7 +54,6 @@ public class RewriteMarkLoopVariablesUpdateInPlace extends StatementBlockRewrite
 	
 	@Override
 	public List<StatementBlock> rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status)
-		throws HopsException 
 	{
 		if( DMLScript.rtplatform == RUNTIME_PLATFORM.HADOOP
 			|| DMLScript.rtplatform == RUNTIME_PLATFORM.SPARK )
@@ -95,7 +93,6 @@ public class RewriteMarkLoopVariablesUpdateInPlace extends StatementBlockRewrite
 	}
 	
 	private boolean rIsApplicableForUpdateInPlace( ArrayList<StatementBlock> sbs, String varname ) 
-		throws HopsException
 	{
 		//NOTE: no function statement blocks / predicates considered because function call would 
 		//render variable as not applicable and predicates don't allow assignments; further reuse 
@@ -157,8 +154,7 @@ public class RewriteMarkLoopVariablesUpdateInPlace extends StatementBlockRewrite
 	}
 	
 	@Override
-	public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, 
-			ProgramRewriteStatus sate) throws HopsException {
+	public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate) {
 		return sbs;
 	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteMatrixMultChainOptimization.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteMatrixMultChainOptimization.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteMatrixMultChainOptimization.java
index e8510d4..91033c4 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteMatrixMultChainOptimization.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteMatrixMultChainOptimization.java
@@ -55,7 +55,6 @@ public class RewriteMatrixMultChainOptimization extends HopRewriteRule
 	
 	@Override
 	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) 
-		throws HopsException
 	{
 		if( roots == null )
 			return null;
@@ -69,7 +68,6 @@ public class RewriteMatrixMultChainOptimization extends HopRewriteRule
 
 	@Override
 	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state)
-		throws HopsException
 	{
 		if( root == null )
 			return null;
@@ -85,10 +83,8 @@ public class RewriteMatrixMultChainOptimization extends HopRewriteRule
 	 * to find chains that need to be optimized.
 	 * 
 	 * @param hop high-level operator
-	 * @throws HopsException if HopsException occurs
 	 */
 	private void rule_OptimizeMMChains(Hop hop) 
-		throws HopsException 
 	{
 		if( hop.isVisited() )
 			return;
@@ -116,9 +112,8 @@ public class RewriteMatrixMultChainOptimization extends HopRewriteRule
 	 * mmChain.
 	 * 
 	 * @param hop high-level operator
-	 * @throws HopsException if HopsException occurs
 	 */
-	private void optimizeMMChain( Hop hop ) throws HopsException 
+	private void optimizeMMChain( Hop hop )
 	{
 		if( LOG.isTraceEnabled() ) {
 			LOG.trace("MM Chain Optimization for HOP: (" + hop.getClass().getSimpleName()
@@ -326,7 +321,6 @@ public class RewriteMatrixMultChainOptimization extends HopRewriteRule
 	}
 
 	private static void clearLinksWithinChain( Hop hop, ArrayList<Hop> operators ) 
-		throws HopsException 
 	{
 		for( int i=0; i < operators.size(); i++ ) {
 			Hop op = operators.get(i);
@@ -352,10 +346,8 @@ public class RewriteMatrixMultChainOptimization extends HopRewriteRule
 	 * @param chain list of high-level operators
 	 * @param dimArray dimension array
 	 * @return true if all dimensions known
-	 * @throws HopsException if HopsException occurs
 	 */
 	private static boolean getDimsArray( Hop hop, ArrayList<Hop> chain, double[] dimsArray ) 
-		throws HopsException 
 	{
 		boolean dimsKnown = true;
 		

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteMergeBlockSequence.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteMergeBlockSequence.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteMergeBlockSequence.java
index 9c2d715..0ddba21 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteMergeBlockSequence.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteMergeBlockSequence.java
@@ -28,7 +28,6 @@ import java.util.List;
 import org.apache.sysml.hops.FunctionOp;
 import org.apache.sysml.hops.Hop;
 import org.apache.sysml.hops.Hop.DataOpTypes;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.parser.ExternalFunctionStatement;
 import org.apache.sysml.parser.FunctionStatementBlock;
 import org.apache.sysml.parser.StatementBlock;
@@ -51,13 +50,13 @@ public class RewriteMergeBlockSequence extends StatementBlockRewriteRule
 	
 	@Override
 	public List<StatementBlock> rewriteStatementBlock(StatementBlock sb, 
-			ProgramRewriteStatus state) throws HopsException {
+			ProgramRewriteStatus state) {
 		return Arrays.asList(sb);
 	}
 	
 	@Override
 	public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, 
-			ProgramRewriteStatus sate) throws HopsException 
+			ProgramRewriteStatus sate) 
 	{
 		if( sbs == null || sbs.isEmpty() )
 			return sbs;
@@ -174,8 +173,7 @@ public class RewriteMergeBlockSequence extends StatementBlockRewriteRule
 		current.setVisited();
 	}
 	
-	private static boolean hasFunctionOpRoot(StatementBlock sb) 
-			throws HopsException {
+	private static boolean hasFunctionOpRoot(StatementBlock sb) {
 		if( sb == null || sb.getHops() == null )
 			return false;
 		boolean ret = false;
@@ -184,8 +182,7 @@ public class RewriteMergeBlockSequence extends StatementBlockRewriteRule
 		return ret;
 	}
 	
-	private static boolean hasExternalFunctionOpRootWithSideEffect(StatementBlock sb) 
-			throws HopsException {
+	private static boolean hasExternalFunctionOpRootWithSideEffect(StatementBlock sb) {
 		if( sb == null || sb.getHops() == null )
 			return false;
 		for( Hop root : sb.getHops() )
@@ -202,7 +199,6 @@ public class RewriteMergeBlockSequence extends StatementBlockRewriteRule
 	}
 	
 	private static boolean hasFunctionIOConflict(StatementBlock sb1, StatementBlock sb2) 
-		throws HopsException 
 	{
 		//semantics: a function op root in sb1 conflicts with sb2 if this function op writes
 		//to a variable that is read or written by sb2, where the write might be either

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveDanglingParentReferences.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveDanglingParentReferences.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveDanglingParentReferences.java
index 824c56b..926e53c 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveDanglingParentReferences.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveDanglingParentReferences.java
@@ -27,7 +27,6 @@ import org.apache.sysml.hops.Hop;
 import org.apache.sysml.hops.Hop.DataOpTypes;
 import org.apache.sysml.hops.Hop.OpOpN;
 import org.apache.sysml.hops.Hop.OpOp1;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.NaryOp;
 import org.apache.sysml.hops.UnaryOp;
 
@@ -41,9 +40,7 @@ import org.apache.sysml.hops.UnaryOp;
 public class RewriteRemoveDanglingParentReferences extends HopRewriteRule
 {
 	@Override
-	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state)
-		throws HopsException
-	{
+	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) {
 		if( roots == null )
 			return null;
 		
@@ -58,9 +55,7 @@ public class RewriteRemoveDanglingParentReferences extends HopRewriteRule
 	}
 
 	@Override
-	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) 
-		throws HopsException
-	{
+	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) {
 		if( root == null )
 			return root;
 		
@@ -74,9 +69,7 @@ public class RewriteRemoveDanglingParentReferences extends HopRewriteRule
 		return root;
 	}
 	
-	private int removeDanglingParentReferences( Hop hop, boolean pin ) 
-		throws HopsException
-	{
+	private int removeDanglingParentReferences( Hop hop, boolean pin ) {
 		//check mark processed
 		if( hop.isVisited() )
 			return 0;

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveEmptyBasicBlocks.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveEmptyBasicBlocks.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveEmptyBasicBlocks.java
index b03763c..c4ba9f9 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveEmptyBasicBlocks.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveEmptyBasicBlocks.java
@@ -22,7 +22,6 @@ package org.apache.sysml.hops.rewrite;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.parser.StatementBlock;
 
 /**
@@ -38,9 +37,7 @@ public class RewriteRemoveEmptyBasicBlocks extends StatementBlockRewriteRule
 	}
 	
 	@Override
-	public List<StatementBlock> rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)
-		throws HopsException 
-	{
+	public List<StatementBlock> rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state) {
 		ArrayList<StatementBlock> ret = new ArrayList<>();
 		
 		//prune last level blocks with empty hops
@@ -56,8 +53,7 @@ public class RewriteRemoveEmptyBasicBlocks extends StatementBlockRewriteRule
 	}
 	
 	@Override
-	public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate) 
-		throws HopsException {
+	public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate) {
 		return sbs;
 	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemovePersistentReadWrite.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemovePersistentReadWrite.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemovePersistentReadWrite.java
index ec5c6c0..79aca58 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemovePersistentReadWrite.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemovePersistentReadWrite.java
@@ -28,7 +28,6 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.sysml.hops.DataOp;
 import org.apache.sysml.hops.Hop;
 import org.apache.sysml.hops.Hop.DataOpTypes;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.parser.Expression.DataType;
 import org.apache.sysml.runtime.controlprogram.LocalVariableMap;
 import org.apache.sysml.runtime.controlprogram.caching.CacheableData;
@@ -78,33 +77,23 @@ public class RewriteRemovePersistentReadWrite extends HopRewriteRule
 	}
 	
 	@Override
-	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state)
-		throws HopsException
-	{
+	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) {
 		if( roots == null )
 			return null;
-		
 		for( Hop h : roots ) 
 			rule_RemovePersistentDataOp( h );
-		
 		return roots;
 	}
 
 	@Override
-	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) 
-		throws HopsException
-	{
+	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) {
 		if( root == null )
 			return root;
-		
 		rule_RemovePersistentDataOp( root );
-		
 		return root;
 	}
 	
-	private void rule_RemovePersistentDataOp( Hop hop ) 
-		throws HopsException
-	{
+	private void rule_RemovePersistentDataOp( Hop hop ) {
 		//check mark processed
 		if( hop.isVisited() )
 			return;

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveReadAfterWrite.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveReadAfterWrite.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveReadAfterWrite.java
index c53d59d..5963871 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveReadAfterWrite.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveReadAfterWrite.java
@@ -26,7 +26,6 @@ import java.util.Map.Entry;
 import org.apache.sysml.hops.DataOp;
 import org.apache.sysml.hops.Hop;
 import org.apache.sysml.hops.Hop.DataOpTypes;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.LiteralOp;
 import org.apache.sysml.parser.DataExpression;
 
@@ -44,7 +43,6 @@ public class RewriteRemoveReadAfterWrite extends HopRewriteRule
 	@Override
 	@SuppressWarnings("unchecked")
 	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state)
-		throws HopsException
 	{
 		if( roots == null )
 			return null;
@@ -78,17 +76,12 @@ public class RewriteRemoveReadAfterWrite extends HopRewriteRule
 	}
 
 	@Override
-	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) 
-		throws HopsException
-	{
+	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) {
 		//do noting, read/write do not occur in predicates
-		
 		return root;
 	}
 
-	private void collectPersistentReadWriteOps(Hop hop, HashMap<String,Hop> pWrites, HashMap<String,Hop> pReads) 
-		throws HopsException 
-	{
+	private void collectPersistentReadWriteOps(Hop hop, HashMap<String,Hop> pWrites, HashMap<String,Hop> pReads) {
 		if( hop.isVisited() )
 			return;
 		

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveUnnecessaryBranches.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveUnnecessaryBranches.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveUnnecessaryBranches.java
index 094adb0..619a084 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveUnnecessaryBranches.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveUnnecessaryBranches.java
@@ -23,7 +23,6 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.sysml.hops.Hop;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.LiteralOp;
 import org.apache.sysml.parser.IfStatement;
 import org.apache.sysml.parser.IfStatementBlock;
@@ -44,7 +43,6 @@ public class RewriteRemoveUnnecessaryBranches extends StatementBlockRewriteRule
 	
 	@Override
 	public List<StatementBlock> rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)
-		throws HopsException 
 	{
 		ArrayList<StatementBlock> ret = new ArrayList<>();
 		
@@ -88,8 +86,7 @@ public class RewriteRemoveUnnecessaryBranches extends StatementBlockRewriteRule
 	}
 	
 	@Override
-	public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, 
-			ProgramRewriteStatus sate) throws HopsException {
+	public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate) {
 		return sbs;
 	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveUnnecessaryCasts.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveUnnecessaryCasts.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveUnnecessaryCasts.java
index e657f7f..224affe 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveUnnecessaryCasts.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveUnnecessaryCasts.java
@@ -22,7 +22,6 @@ package org.apache.sysml.hops.rewrite;
 import java.util.ArrayList;
 import org.apache.sysml.hops.Hop;
 import org.apache.sysml.hops.Hop.OpOp1;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.UnaryOp;
 import org.apache.sysml.parser.Expression.ValueType;
 
@@ -43,29 +42,20 @@ import org.apache.sysml.parser.Expression.ValueType;
  */
 public class RewriteRemoveUnnecessaryCasts extends HopRewriteRule
 {
-	
 	@Override
-	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state)
-		throws HopsException
-	{
+	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) {
 		if( roots == null )
 			return null;
-		
 		for( Hop h : roots ) 
 			rule_RemoveUnnecessaryCasts( h );
-		
 		return roots;
 	}
 
 	@Override
-	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) 
-		throws HopsException
-	{
+	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) {
 		if( root == null )
 			return root;
-		
 		rule_RemoveUnnecessaryCasts( root );
-		
 		return root;
 	}
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteSplitDagDataDependentOperators.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteSplitDagDataDependentOperators.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteSplitDagDataDependentOperators.java
index b7ab7d1..a758ee0 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteSplitDagDataDependentOperators.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteSplitDagDataDependentOperators.java
@@ -79,7 +79,6 @@ public class RewriteSplitDagDataDependentOperators extends StatementBlockRewrite
 	
 	@Override
 	public List<StatementBlock> rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)
-		throws HopsException 
 	{
 		//DAG splits not required for forced single node
 		if( DMLScript.rtplatform == RUNTIME_PLATFORM.SINGLE_NODE
@@ -482,8 +481,7 @@ public class RewriteSplitDagDataDependentOperators extends StatementBlockRewrite
 	}
 	
 	@Override
-	public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, 
-			ProgramRewriteStatus sate) throws HopsException {
+	public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate) {
 		return sbs;
 	}
 	

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteSplitDagUnknownCSVRead.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteSplitDagUnknownCSVRead.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteSplitDagUnknownCSVRead.java
index 3e423b8..30631d6 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteSplitDagUnknownCSVRead.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteSplitDagUnknownCSVRead.java
@@ -52,7 +52,6 @@ public class RewriteSplitDagUnknownCSVRead extends StatementBlockRewriteRule
 	
 	@Override
 	public List<StatementBlock> rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)
-		throws HopsException 
 	{
 		//DAG splits not required for forced single node
 		if( DMLScript.rtplatform == RUNTIME_PLATFORM.SINGLE_NODE
@@ -145,15 +144,13 @@ public class RewriteSplitDagUnknownCSVRead extends StatementBlockRewriteRule
 	}
 	
 	@Override
-	public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, 
-			ProgramRewriteStatus sate) throws HopsException {
+	public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate) {
 		return sbs;
 	}
 	
 	private void collectCSVReadHopsUnknownSize( ArrayList<Hop> roots, ArrayList<Hop> cand ) {
 		if( roots == null )
 			return;
-		
 		Hop.resetVisitStatus(roots);
 		for( Hop root : roots )
 			collectCSVReadHopsUnknownSize(root, cand);

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteTransientWriteParentHandling.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/RewriteTransientWriteParentHandling.java b/src/main/java/org/apache/sysml/hops/rewrite/RewriteTransientWriteParentHandling.java
index 4e16084..994132b 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteTransientWriteParentHandling.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteTransientWriteParentHandling.java
@@ -23,7 +23,6 @@ import java.util.ArrayList;
 
 import org.apache.sysml.hops.DataOp;
 import org.apache.sysml.hops.Hop;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.Hop.DataOpTypes;
 
 /**
@@ -35,27 +34,20 @@ import org.apache.sysml.hops.Hop.DataOpTypes;
  */
 public class RewriteTransientWriteParentHandling extends HopRewriteRule
 {
-
 	@Override
-	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) 
-		throws HopsException
-	{
+	public ArrayList<Hop> rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) {
 		for (Hop h : roots) 
 			rule_RehangTransientWriteParents(h, roots);
-		
 		return roots;
 	}
 
 	@Override
-	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state)
-		throws HopsException
-	{
-		// do nothing (does not apply to predicate hop DAGs) 	
+	public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) {
+		// do nothing (does not apply to predicate hop DAGs)
 		return root;
 	}
 
 	private void rule_RehangTransientWriteParents(Hop hop, ArrayList<Hop> sbHops) 
-		throws HopsException 
 	{
 		if (hop instanceof DataOp && ((DataOp) hop).getDataOpType() == DataOpTypes.TRANSIENTWRITE
 				&& !hop.getParent().isEmpty()) {

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/StatementBlockRewriteRule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/StatementBlockRewriteRule.java b/src/main/java/org/apache/sysml/hops/rewrite/StatementBlockRewriteRule.java
index ff2d5bf..fe8d111 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/StatementBlockRewriteRule.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/StatementBlockRewriteRule.java
@@ -24,7 +24,6 @@ import java.util.List;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.parser.StatementBlock;
 
 /**
@@ -52,10 +51,8 @@ public abstract class StatementBlockRewriteRule
 	 * @param sb statement block
 	 * @param sate program rewrite status
 	 * @return list of statement blocks
-	 * @throws HopsException if HopsException occurs
 	 */
-	public abstract List<StatementBlock> rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus sate) 
-		throws HopsException;
+	public abstract List<StatementBlock> rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus sate);
 	
 	/**
 	 * Handle a list of statement blocks. Specific type constraints have to be ensured
@@ -65,8 +62,6 @@ public abstract class StatementBlockRewriteRule
 	 * @param sbs list of statement blocks
 	 * @param sate program rewrite status
 	 * @return list of statement blocks
-	 * @throws HopsException if HopsException occurs
 	 */
-	public abstract List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate) 
-		throws HopsException;
+	public abstract List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate);
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/Aggregate.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/Aggregate.java b/src/main/java/org/apache/sysml/lops/Aggregate.java
index f90e214..2631415 100644
--- a/src/main/java/org/apache/sysml/lops/Aggregate.java
+++ b/src/main/java/org/apache/sysml/lops/Aggregate.java
@@ -127,13 +127,12 @@ public class Aggregate extends Lop
 	}
 	
 	@Override
-	public String getInstructions(int input_index, int output_index) throws LopsException {
+	public String getInstructions(int input_index, int output_index) {
 		return getInstructions(String.valueOf(input_index), String.valueOf(output_index));
 	}
 
 	@Override
 	public String getInstructions(String input1, String output) 
-		throws LopsException 
 	{
 		boolean isCorrectionApplicable = (getExecType() == ExecType.MR &&
 				(operation == OperationTypes.Mean || operation == OperationTypes.Var

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/Append.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/Append.java b/src/main/java/org/apache/sysml/lops/Append.java
index f2b9896..ac96d89 100644
--- a/src/main/java/org/apache/sysml/lops/Append.java
+++ b/src/main/java/org/apache/sysml/lops/Append.java
@@ -67,9 +67,7 @@ public class Append extends Lop
 
 	//called when append executes in CP
 	@Override
-	public String getInstructions(String input1, String input2, String input3, String output) 
-		throws LopsException
-	{
+	public String getInstructions(String input1, String input2, String input3, String output) {
 		StringBuilder sb = new StringBuilder();
 		sb.append( getExecType() );
 		sb.append( OPERAND_DELIMITOR );

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/AppendG.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/AppendG.java b/src/main/java/org/apache/sysml/lops/AppendG.java
index b412563..5483121 100644
--- a/src/main/java/org/apache/sysml/lops/AppendG.java
+++ b/src/main/java/org/apache/sysml/lops/AppendG.java
@@ -87,9 +87,7 @@ public class AppendG extends Lop
 
 	//called when append executes in MR
 	@Override
-	public String getInstructions(int input_index1, int input_index2, int input_index3, int input_index4, int output_index) 
-		throws LopsException
-	{
+	public String getInstructions(int input_index1, int input_index2, int input_index3, int input_index4, int output_index) {
 		return getInstructions(
 				String.valueOf(input_index1),
 				String.valueOf(input_index2),
@@ -100,9 +98,7 @@ public class AppendG extends Lop
 	
 	//called when append executes in SP
 	@Override
-	public String getInstructions(String input_index1, String input_index2, String input_index3, String input_index4, String output_index) 
-		throws LopsException
-	{
+	public String getInstructions(String input_index1, String input_index2, String input_index3, String input_index4, String output_index) {
 		StringBuilder sb = new StringBuilder();
 		sb.append( getExecType() );
 		

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/AppendGAlignedSP.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/AppendGAlignedSP.java b/src/main/java/org/apache/sysml/lops/AppendGAlignedSP.java
index a591c3e..0e83ebb 100644
--- a/src/main/java/org/apache/sysml/lops/AppendGAlignedSP.java
+++ b/src/main/java/org/apache/sysml/lops/AppendGAlignedSP.java
@@ -66,7 +66,6 @@ public class AppendGAlignedSP extends Lop
 	//called when append executes in CP
 	@Override
 	public String getInstructions(String input_index1, String input_index2, String input_index3, String output_index) 
-		throws LopsException
 	{
 		StringBuilder sb = new StringBuilder();
 		sb.append( getExecType() );

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/AppendM.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/AppendM.java b/src/main/java/org/apache/sysml/lops/AppendM.java
index 0d71319..9ca8047 100644
--- a/src/main/java/org/apache/sysml/lops/AppendM.java
+++ b/src/main/java/org/apache/sysml/lops/AppendM.java
@@ -80,9 +80,7 @@ public class AppendM extends Lop
 
 	//called when append executes in MR
 	@Override
-	public String getInstructions(int input_index1, int input_index2, int input_index3, int output_index) 
-		throws LopsException
-	{
+	public String getInstructions(int input_index1, int input_index2, int input_index3, int output_index) {
 		return getInstructions(
 				String.valueOf(input_index1),
 				String.valueOf(input_index2),
@@ -93,9 +91,7 @@ public class AppendM extends Lop
 
 	//called when append executes in SP
 	@Override
-	public String getInstructions(String input1, String input2, String input3, String output) 
-		throws LopsException
-	{
+	public String getInstructions(String input1, String input2, String input3, String output) {
 		StringBuilder sb = new StringBuilder();
 		sb.append( getExecType() );
 		

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/AppendR.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/AppendR.java b/src/main/java/org/apache/sysml/lops/AppendR.java
index e8d55b4..0fbec7e 100644
--- a/src/main/java/org/apache/sysml/lops/AppendR.java
+++ b/src/main/java/org/apache/sysml/lops/AppendR.java
@@ -71,9 +71,7 @@ public class AppendR extends Lop
 
 	//called when append executes in MR
 	@Override
-	public String getInstructions(int input_index1, int input_index2, int output_index) 
-		throws LopsException
-	{
+	public String getInstructions(int input_index1, int input_index2, int output_index) {
 		return getInstructions(
 				String.valueOf(input_index1),
 				String.valueOf(input_index2),
@@ -82,9 +80,7 @@ public class AppendR extends Lop
 	
 	//called when append executes in CP
 	@Override
-	public String getInstructions(String input1, String input2, String output) 
-		throws LopsException
-	{
+	public String getInstructions(String input1, String input2, String output) {
 		StringBuilder sb = new StringBuilder();
 		sb.append( getExecType() );
 		

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/Binary.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/Binary.java b/src/main/java/org/apache/sysml/lops/Binary.java
index d393ea2..26c9778 100644
--- a/src/main/java/org/apache/sysml/lops/Binary.java
+++ b/src/main/java/org/apache/sysml/lops/Binary.java
@@ -190,7 +190,7 @@ public class Binary extends Lop
 	
 	
 	@Override
-	public String getInstructions(int input_index1, int input_index2, int output_index) throws LopsException {
+	public String getInstructions(int input_index1, int input_index2, int output_index) {
 		return getInstructions(
 				String.valueOf(input_index1), 
 				String.valueOf(input_index2), 
@@ -198,9 +198,7 @@ public class Binary extends Lop
 	}
 	
 	@Override
-	public String getInstructions(String input1, String input2, String output) 
-		throws LopsException 
-	{
+	public String getInstructions(String input1, String input2, String output) {
 		StringBuilder sb = new StringBuilder();
 		sb.append( getExecType() );
 		sb.append( OPERAND_DELIMITOR );

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/BinaryM.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/BinaryM.java b/src/main/java/org/apache/sysml/lops/BinaryM.java
index d3183e6..08ab70e 100644
--- a/src/main/java/org/apache/sysml/lops/BinaryM.java
+++ b/src/main/java/org/apache/sysml/lops/BinaryM.java
@@ -59,9 +59,8 @@ public class BinaryM extends Lop
 	 * @param et exec type
 	 * @param partitioned true if partitioned
 	 * @param colVector true if colVector
-	 * @throws LopsException if LopsException occurs
 	 */
-	public BinaryM(Lop input1, Lop input2, OperationTypes op, DataType dt, ValueType vt, ExecType et, boolean partitioned, boolean colVector ) throws LopsException {
+	public BinaryM(Lop input1, Lop input2, OperationTypes op, DataType dt, ValueType vt, ExecType et, boolean partitioned, boolean colVector ) {
 		super(Lop.Type.Binary, dt, vt);
 		
 		_operation = op;
@@ -164,22 +163,21 @@ public class BinaryM extends Lop
 		}
 	}
 
-	public static boolean isOpcode(String opcode)
-	{
+	public static boolean isOpcode(String opcode) {
 		return opcode.equals("map+") || opcode.equals("map-") ||
-			   opcode.equals("map*") || opcode.equals("map/") ||	
-			   opcode.equals("map%%") || opcode.equals("map%/%") ||	
-			   opcode.equals("map<") || opcode.equals("map<=") ||	
-			   opcode.equals("map>") || opcode.equals("map>=") ||	
-			   opcode.equals("map==") || opcode.equals("map!=") ||	
-			   opcode.equals("map&&") || opcode.equals("map||") ||	
-			   opcode.equals("mapmin") || opcode.equals("mapmax") ||	
+			   opcode.equals("map*") || opcode.equals("map/") ||
+			   opcode.equals("map%%") || opcode.equals("map%/%") ||
+			   opcode.equals("map<") || opcode.equals("map<=") ||
+			   opcode.equals("map>") || opcode.equals("map>=") ||
+			   opcode.equals("map==") || opcode.equals("map!=") ||
+			   opcode.equals("map&&") || opcode.equals("map||") ||
+			   opcode.equals("mapmin") || opcode.equals("mapmax") ||
 			   opcode.equals("map^") || opcode.equals("map1-*");
 	}
 	
 	
 	@Override
-	public String getInstructions(int input_index1, int input_index2, int output_index) throws LopsException {
+	public String getInstructions(int input_index1, int input_index2, int output_index) {
 		return getInstructions(
 				String.valueOf(input_index1), 
 				String.valueOf(input_index2), 
@@ -188,7 +186,6 @@ public class BinaryM extends Lop
 	
 	@Override
 	public String getInstructions(String input1, String input2, String output) 
-		throws LopsException 
 	{
 		StringBuilder sb = new StringBuilder();
 		sb.append( getExecType() );

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/BinaryScalar.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/BinaryScalar.java b/src/main/java/org/apache/sysml/lops/BinaryScalar.java
index f581a9a..5b5fe02 100644
--- a/src/main/java/org/apache/sysml/lops/BinaryScalar.java
+++ b/src/main/java/org/apache/sysml/lops/BinaryScalar.java
@@ -77,8 +77,7 @@ public class BinaryScalar extends Lop
 	}
 
 	@Override
-	public String getInstructions(String input1, String input2, String output) throws LopsException
-	{
+	public String getInstructions(String input1, String input2, String output) {
 		StringBuilder sb = new StringBuilder();
 		
 		sb.append(getExecType());

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/BinaryUAggChain.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/BinaryUAggChain.java b/src/main/java/org/apache/sysml/lops/BinaryUAggChain.java
index e1b8968..388f4a4 100644
--- a/src/main/java/org/apache/sysml/lops/BinaryUAggChain.java
+++ b/src/main/java/org/apache/sysml/lops/BinaryUAggChain.java
@@ -49,12 +49,9 @@ public class BinaryUAggChain extends Lop
 	 * @param dt data type
 	 * @param vt value type
 	 * @param et execution type
-	 * @throws LopsException if LopsException occurs
 	 */
-	public BinaryUAggChain(Lop input1, Binary.OperationTypes bop, Aggregate.OperationTypes uaop, PartialAggregate.DirectionTypes uadir, DataType dt, ValueType vt, ExecType et) 
-		throws LopsException 
-	{
-		super(Lop.Type.BinUaggChain, dt, vt);		
+	public BinaryUAggChain(Lop input1, Binary.OperationTypes bop, Aggregate.OperationTypes uaop, PartialAggregate.DirectionTypes uadir, DataType dt, ValueType vt, ExecType et) {
+		super(Lop.Type.BinUaggChain, dt, vt);
 		addInput(input1); //X
 		input1.addOutput(this); 
 		

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/CSVReBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/CSVReBlock.java b/src/main/java/org/apache/sysml/lops/CSVReBlock.java
index 1217cd1..92694b0 100644
--- a/src/main/java/org/apache/sysml/lops/CSVReBlock.java
+++ b/src/main/java/org/apache/sysml/lops/CSVReBlock.java
@@ -37,7 +37,7 @@ public class CSVReBlock extends Lop
 	private int _rows_per_block;
 	private int _cols_per_block;
 
-	public CSVReBlock(Lop input, int rows_per_block, int cols_per_block, DataType dt, ValueType vt, ExecType et) throws LopsException 
+	public CSVReBlock(Lop input, int rows_per_block, int cols_per_block, DataType dt, ValueType vt, ExecType et)
 	{
 		super(Lop.Type.CSVReBlock, dt, vt);
 		addInput(input);
@@ -67,7 +67,7 @@ public class CSVReBlock extends Lop
 		return "CSVReblock - rows per block = " + _rows_per_block + " cols per block  " + _cols_per_block ;
 	}
 	
-	private String prepCSVProperties() throws LopsException {
+	private String prepCSVProperties() {
 		StringBuilder sb = new StringBuilder();
 
 		Data dataInput = (Data)getInputs().get(0);
@@ -110,12 +110,12 @@ public class CSVReBlock extends Lop
 }
 
 	@Override
-	public String getInstructions(int input_index, int output_index) throws LopsException {
+	public String getInstructions(int input_index, int output_index) {
 		return getInstructions(String.valueOf(input_index), String.valueOf(output_index));
 	}
 	
 	@Override
-	public String getInstructions(String input1, String output) throws LopsException {
+	public String getInstructions(String input1, String output) {
 		StringBuilder sb = new StringBuilder();
 		sb.append( getExecType() );
 		sb.append( Lop.OPERAND_DELIMITOR );

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/Checkpoint.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/Checkpoint.java b/src/main/java/org/apache/sysml/lops/Checkpoint.java
index 84e1825..d469d7e 100644
--- a/src/main/java/org/apache/sysml/lops/Checkpoint.java
+++ b/src/main/java/org/apache/sysml/lops/Checkpoint.java
@@ -57,12 +57,9 @@ public class Checkpoint extends Lop
 	 * @param dt data type
 	 * @param vt value type
 	 * @param level storage level
-	 * @throws LopsException if LopsException occurs
 	 */
-	public Checkpoint(Lop input, DataType dt, ValueType vt, String level) 
-		throws LopsException
-	{
-		super(Lop.Type.Checkpoint, dt, vt);		
+	public Checkpoint(Lop input, DataType dt, ValueType vt, String level)  {
+		super(Lop.Type.Checkpoint, dt, vt);
 		this.addInput(input);
 		input.addOutput(this);
 		
@@ -92,9 +89,7 @@ public class Checkpoint extends Lop
 	}
 	
 	@Override
-	public String getInstructions(String input1, String output) 
-		throws LopsException 
-	{
+	public String getInstructions(String input1, String output) {
 		//valid execution type
 		if(getExecType() != ExecType.SPARK) {
 			throw new LopsException("Wrong execution type for Checkpoint.getInstructions (expected: SPARK, found: "+getExecType()+").");

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/CoVariance.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/CoVariance.java b/src/main/java/org/apache/sysml/lops/CoVariance.java
index 8e84222..00a3bb6 100644
--- a/src/main/java/org/apache/sysml/lops/CoVariance.java
+++ b/src/main/java/org/apache/sysml/lops/CoVariance.java
@@ -32,23 +32,21 @@ import org.apache.sysml.parser.Expression.ValueType;
 public class CoVariance extends Lop 
 {
 
-	public CoVariance(Lop input1, DataType dt, ValueType vt, ExecType et) throws LopsException {
+	public CoVariance(Lop input1, DataType dt, ValueType vt, ExecType et) {
 		super(Lop.Type.CoVariance, dt, vt);
 		init(input1, null, null, et);
 	}
 	
-	public CoVariance(Lop input1, Lop input2, DataType dt, ValueType vt, ExecType et) throws LopsException {
+	public CoVariance(Lop input1, Lop input2, DataType dt, ValueType vt, ExecType et) {
 		this(input1, input2, null, dt, vt, et);
 	}
 	
-	public CoVariance(Lop input1, Lop input2, Lop input3, DataType dt, ValueType vt, ExecType et) throws LopsException {
+	public CoVariance(Lop input1, Lop input2, Lop input3, DataType dt, ValueType vt, ExecType et) {
 		super(Lop.Type.CoVariance, dt, vt);
 		init(input1, input2, input3, et);
 	}
 
-	private void init(Lop input1, Lop input2, Lop input3, ExecType et) 
-		throws LopsException 
-	{
+	private void init(Lop input1, Lop input2, Lop input3, ExecType et) {
 		/*
 		 * When et = MR: covariance lop will have a single input lop, which
 		 * denote the combined input data -- output of combinebinary, if unweighed;

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/CombineBinary.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/CombineBinary.java b/src/main/java/org/apache/sysml/lops/CombineBinary.java
index 44ee47d..0836aca 100644
--- a/src/main/java/org/apache/sysml/lops/CombineBinary.java
+++ b/src/main/java/org/apache/sysml/lops/CombineBinary.java
@@ -72,9 +72,7 @@ public class CombineBinary extends Lop
 	}
 
 	@Override
-	public String getInstructions(int input_index1, int input_index2, int output_index) 
-		throws LopsException
-	{
+	public String getInstructions(int input_index1, int input_index2, int output_index) {
 		// Determine whether or not the second input denotes weights vector.
 		// CombineBinary can be used to combine (data,weights) vectors or (data1,data2) vectors  
 		boolean isSecondInputIsWeight = true;

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/CombineTernary.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/CombineTernary.java b/src/main/java/org/apache/sysml/lops/CombineTernary.java
index ac1a60f..2352935 100644
--- a/src/main/java/org/apache/sysml/lops/CombineTernary.java
+++ b/src/main/java/org/apache/sysml/lops/CombineTernary.java
@@ -69,8 +69,7 @@ public class CombineTernary extends Lop
 
 	@Override
 	public String getInstructions(int input_index1, int input_index2,
-			int input_index3, int output_index) 
-		throws LopsException 
+			int input_index3, int output_index)
 	{
 		StringBuilder sb = new StringBuilder();
 		sb.append( getExecType() );

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/CombineUnary.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/CombineUnary.java b/src/main/java/org/apache/sysml/lops/CombineUnary.java
index a7f34f6..11fdc5b 100644
--- a/src/main/java/org/apache/sysml/lops/CombineUnary.java
+++ b/src/main/java/org/apache/sysml/lops/CombineUnary.java
@@ -60,9 +60,7 @@ public class CombineUnary extends Lop
 	}
 
 	@Override
-	public String getInstructions(int input_index1, int output_index) 
-		throws LopsException
-	{
+	public String getInstructions(int input_index1, int output_index) {
 		StringBuilder sb = new StringBuilder();
 		sb.append( getExecType() );
 		sb.append( Lop.OPERAND_DELIMITOR );