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 2017/10/11 05:53:16 UTC
[6/7] systemml git commit: [MINOR] Cleanup various issues raised by
static code analysis, part 1
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelectionFuseCostBased.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelectionFuseCostBased.java b/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelectionFuseCostBased.java
index f67604d..d01ffe2 100644
--- a/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelectionFuseCostBased.java
+++ b/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelectionFuseCostBased.java
@@ -114,7 +114,7 @@ public class PlanSelectionFuseCostBased extends PlanSelection
private static void createAndAddMultiAggPlans(CPlanMemoTable memo, HashSet<Long> partition, HashSet<Long> R)
{
//create index of plans that reference full aggregates to avoid circular dependencies
- HashSet<Long> refHops = new HashSet<Long>();
+ HashSet<Long> refHops = new HashSet<>();
for( Entry<Long, List<MemoTableEntry>> e : memo.getPlans().entrySet() )
if( !e.getValue().isEmpty() ) {
Hop hop = memo.getHopRefs().get(e.getKey());
@@ -124,7 +124,7 @@ public class PlanSelectionFuseCostBased extends PlanSelection
//find all full aggregations (the fact that they are in the same partition guarantees
//that they also have common subexpressions, also full aggregations are by def root nodes)
- ArrayList<Long> fullAggs = new ArrayList<Long>();
+ ArrayList<Long> fullAggs = new ArrayList<>();
for( Long hopID : R ) {
Hop root = memo.getHopRefs().get(hopID);
if( !refHops.contains(hopID) && isMultiAggregateRoot(root) )
@@ -159,7 +159,7 @@ public class PlanSelectionFuseCostBased extends PlanSelection
private void createAndAddMultiAggPlans(CPlanMemoTable memo, ArrayList<Hop> roots)
{
//collect full aggregations as initial set of candidates
- HashSet<Long> fullAggs = new HashSet<Long>();
+ HashSet<Long> fullAggs = new HashSet<>();
Hop.resetVisitStatus(roots);
for( Hop hop : roots )
rCollectFullAggregates(hop, fullAggs);
@@ -179,7 +179,7 @@ public class PlanSelectionFuseCostBased extends PlanSelection
//collect information for all candidates
//(subsumed aggregations, and inputs to fused operators)
- List<AggregateInfo> aggInfos = new ArrayList<AggregateInfo>();
+ List<AggregateInfo> aggInfos = new ArrayList<>();
for( Long hopID : fullAggs ) {
Hop aggHop = memo.getHopRefs().get(hopID);
AggregateInfo tmp = new AggregateInfo(aggHop);
@@ -272,7 +272,7 @@ public class PlanSelectionFuseCostBased extends PlanSelection
//they to not have potentially transitive parent child references
for( int i=0; ret && i<3; i++ )
if( me.isPlanRef(i) ) {
- HashSet<Long> probe = new HashSet<Long>();
+ HashSet<Long> probe = new HashSet<>();
for( int j=0; j<3; j++ )
if( i != j )
probe.add(me.input(j));
@@ -331,7 +331,7 @@ public class PlanSelectionFuseCostBased extends PlanSelection
if( me.type == TemplateType.ROW && memo.contains(hopID, TemplateType.CELL)
&& isRowTemplateWithoutAgg(memo, memo.getHopRefs().get(hopID), new HashSet<Long>())) {
List<MemoTableEntry> blacklist = memo.get(hopID, TemplateType.ROW);
- memo.remove(memo.getHopRefs().get(hopID), new HashSet<MemoTableEntry>(blacklist));
+ memo.remove(memo.getHopRefs().get(hopID), new HashSet<>(blacklist));
if( LOG.isTraceEnabled() ) {
LOG.trace("Removed row memo table entries w/o aggregation: "
+ Arrays.toString(blacklist.toArray(new MemoTableEntry[0])));
@@ -368,7 +368,7 @@ public class PlanSelectionFuseCostBased extends PlanSelection
//via skip ahead in below enumeration algorithm
//obtain hop compute costs per cell once
- HashMap<Long, Double> computeCosts = new HashMap<Long, Double>();
+ HashMap<Long, Double> computeCosts = new HashMap<>();
for( Long hopID : R )
rGetComputeCosts(memo.getHopRefs().get(hopID), partition, computeCosts);
@@ -401,11 +401,11 @@ public class PlanSelectionFuseCostBased extends PlanSelection
}
//prune memo table wrt best plan and select plans
- HashSet<Long> visited = new HashSet<Long>();
+ HashSet<Long> visited = new HashSet<>();
for( Long hopID : R )
rPruneSuboptimalPlans(memo, memo.getHopRefs().get(hopID),
visited, partition, M, bestPlan);
- HashSet<Long> visited2 = new HashSet<Long>();
+ HashSet<Long> visited2 = new HashSet<>();
for( Long hopID : R )
rPruneInvalidPlans(memo, memo.getHopRefs().get(hopID),
visited2, partition, M, bestPlan);
@@ -532,7 +532,7 @@ public class PlanSelectionFuseCostBased extends PlanSelection
//READ costs by the input sizes, and COMPUTE by operation specific FLOP
//counts times number of cells of main input, disregarding sparsity for now.
- HashSet<Pair<Long,Long>> visited = new HashSet<Pair<Long,Long>>();
+ HashSet<Pair<Long,Long>> visited = new HashSet<>();
double costs = 0;
for( Long hopID : R )
costs += rGetPlanCosts(memo, memo.getHopRefs().get(hopID),
@@ -788,7 +788,7 @@ public class PlanSelectionFuseCostBased extends PlanSelection
public final long ID;
public final double outSize;
public double computeCosts = 0;
- public final HashMap<Long, Double> inSizes = new HashMap<Long, Double>();
+ public final HashMap<Long, Double> inSizes = new HashMap<>();
public CostVector(double outputSize) {
ID = COST_ID.getNextID();
@@ -816,10 +816,10 @@ public class PlanSelectionFuseCostBased extends PlanSelection
private static class AggregateInfo {
public final HashMap<Long,Hop> _aggregates;
- public final HashSet<Long> _inputAggs = new HashSet<Long>();
- public final HashSet<Long> _fusedInputs = new HashSet<Long>();
+ public final HashSet<Long> _inputAggs = new HashSet<>();
+ public final HashSet<Long> _fusedInputs = new HashSet<>();
public AggregateInfo(Hop aggregate) {
- _aggregates = new HashMap<Long, Hop>();
+ _aggregates = new HashMap<>();
_aggregates.put(aggregate.getHopID(), aggregate);
}
public void addInputAggregate(long hopID) {
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelectionFuseCostBasedV2.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelectionFuseCostBasedV2.java b/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelectionFuseCostBasedV2.java
index 31e8427..4b214d0 100644
--- a/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelectionFuseCostBasedV2.java
+++ b/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelectionFuseCostBasedV2.java
@@ -141,7 +141,7 @@ public class PlanSelectionFuseCostBasedV2 extends PlanSelection
}
else {
//obtain hop compute costs per cell once
- HashMap<Long, Double> computeCosts = new HashMap<Long, Double>();
+ HashMap<Long, Double> computeCosts = new HashMap<>();
for( Long hopID : part.getPartition() )
getComputeCosts(memo.getHopRefs().get(hopID), computeCosts);
@@ -160,11 +160,11 @@ public class PlanSelectionFuseCostBasedV2 extends PlanSelection
part.getMatPointsExt(), 0, Double.MAX_VALUE);
//prune memo table wrt best plan and select plans
- HashSet<Long> visited = new HashSet<Long>();
+ HashSet<Long> visited = new HashSet<>();
for( Long hopID : part.getRoots() )
rPruneSuboptimalPlans(memo, memo.getHopRefs().get(hopID),
visited, part, part.getMatPointsExt(), bestPlan);
- HashSet<Long> visited2 = new HashSet<Long>();
+ HashSet<Long> visited2 = new HashSet<>();
for( Long hopID : part.getRoots() )
rPruneInvalidPlans(memo, memo.getHopRefs().get(hopID),
visited2, part, bestPlan);
@@ -358,7 +358,7 @@ public class PlanSelectionFuseCostBasedV2 extends PlanSelection
private static void createAndAddMultiAggPlans(CPlanMemoTable memo, HashSet<Long> partition, HashSet<Long> R)
{
//create index of plans that reference full aggregates to avoid circular dependencies
- HashSet<Long> refHops = new HashSet<Long>();
+ HashSet<Long> refHops = new HashSet<>();
for( Entry<Long, List<MemoTableEntry>> e : memo.getPlans().entrySet() )
if( !e.getValue().isEmpty() ) {
Hop hop = memo.getHopRefs().get(e.getKey());
@@ -368,7 +368,7 @@ public class PlanSelectionFuseCostBasedV2 extends PlanSelection
//find all full aggregations (the fact that they are in the same partition guarantees
//that they also have common subexpressions, also full aggregations are by def root nodes)
- ArrayList<Long> fullAggs = new ArrayList<Long>();
+ ArrayList<Long> fullAggs = new ArrayList<>();
for( Long hopID : R ) {
Hop root = memo.getHopRefs().get(hopID);
if( !refHops.contains(hopID) && isMultiAggregateRoot(root) )
@@ -403,7 +403,7 @@ public class PlanSelectionFuseCostBasedV2 extends PlanSelection
private void createAndAddMultiAggPlans(CPlanMemoTable memo, ArrayList<Hop> roots)
{
//collect full aggregations as initial set of candidates
- HashSet<Long> fullAggs = new HashSet<Long>();
+ HashSet<Long> fullAggs = new HashSet<>();
Hop.resetVisitStatus(roots);
for( Hop hop : roots )
rCollectFullAggregates(hop, fullAggs);
@@ -423,7 +423,7 @@ public class PlanSelectionFuseCostBasedV2 extends PlanSelection
//collect information for all candidates
//(subsumed aggregations, and inputs to fused operators)
- List<AggregateInfo> aggInfos = new ArrayList<AggregateInfo>();
+ List<AggregateInfo> aggInfos = new ArrayList<>();
for( Long hopID : fullAggs ) {
Hop aggHop = memo.getHopRefs().get(hopID);
AggregateInfo tmp = new AggregateInfo(aggHop);
@@ -516,7 +516,7 @@ public class PlanSelectionFuseCostBasedV2 extends PlanSelection
//they to not have potentially transitive parent child references
for( int i=0; ret && i<3; i++ )
if( me.isPlanRef(i) ) {
- HashSet<Long> probe = new HashSet<Long>();
+ HashSet<Long> probe = new HashSet<>();
for( int j=0; j<3; j++ )
if( i != j )
probe.add(me.input(j));
@@ -613,7 +613,7 @@ public class PlanSelectionFuseCostBasedV2 extends PlanSelection
&& HopRewriteUtils.isTransposeOperation(in));
if( isSpark && !validNcol ) {
List<MemoTableEntry> blacklist = memo.get(hopID, TemplateType.ROW);
- memo.remove(memo.getHopRefs().get(hopID), new HashSet<MemoTableEntry>(blacklist));
+ memo.remove(memo.getHopRefs().get(hopID), new HashSet<>(blacklist));
if( !memo.contains(hopID) )
memo.removeAllRefTo(hopID);
if( LOG.isTraceEnabled() ) {
@@ -630,7 +630,7 @@ public class PlanSelectionFuseCostBasedV2 extends PlanSelection
if( me != null && me.type == TemplateType.ROW && memo.contains(hopID, TemplateType.CELL)
&& isRowTemplateWithoutAggOrVects(memo, memo.getHopRefs().get(hopID), new HashSet<Long>())) {
List<MemoTableEntry> blacklist = memo.get(hopID, TemplateType.ROW);
- memo.remove(memo.getHopRefs().get(hopID), new HashSet<MemoTableEntry>(blacklist));
+ memo.remove(memo.getHopRefs().get(hopID), new HashSet<>(blacklist));
if( LOG.isTraceEnabled() ) {
LOG.trace("Removed row memo table entries w/o aggregation: "
+ Arrays.toString(blacklist.toArray(new MemoTableEntry[0])));
@@ -1015,7 +1015,7 @@ public class PlanSelectionFuseCostBasedV2 extends PlanSelection
public final long ID;
public final double outSize;
public double computeCosts = 0;
- public final HashMap<Long, Double> inSizes = new HashMap<Long, Double>();
+ public final HashMap<Long, Double> inSizes = new HashMap<>();
public CostVector(double outputSize) {
ID = COST_ID.getNextID();
@@ -1066,10 +1066,10 @@ public class PlanSelectionFuseCostBasedV2 extends PlanSelection
private static class AggregateInfo {
public final HashMap<Long,Hop> _aggregates;
- public final HashSet<Long> _inputAggs = new HashSet<Long>();
- public final HashSet<Long> _fusedInputs = new HashSet<Long>();
+ public final HashSet<Long> _inputAggs = new HashSet<>();
+ public final HashSet<Long> _fusedInputs = new HashSet<>();
public AggregateInfo(Hop aggregate) {
- _aggregates = new HashMap<Long, Hop>();
+ _aggregates = new HashMap<>();
_aggregates.put(aggregate.getHopID(), aggregate);
}
public void addInputAggregate(long hopID) {
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelectionFuseNoRedundancy.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelectionFuseNoRedundancy.java b/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelectionFuseNoRedundancy.java
index 759a903..2fc90d7 100644
--- a/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelectionFuseNoRedundancy.java
+++ b/src/main/java/org/apache/sysml/hops/codegen/opt/PlanSelectionFuseNoRedundancy.java
@@ -60,7 +60,7 @@ public class PlanSelectionFuseNoRedundancy extends PlanSelection
//step 0: remove plans that refer to a common partial plan
if( memo.contains(current.getHopID()) ) {
- HashSet<MemoTableEntry> rmSet = new HashSet<MemoTableEntry>();
+ HashSet<MemoTableEntry> rmSet = new HashSet<>();
List<MemoTableEntry> hopP = memo.get(current.getHopID());
for( MemoTableEntry e1 : hopP )
for( int i=0; i<3; i++ )
@@ -71,7 +71,7 @@ public class PlanSelectionFuseNoRedundancy extends PlanSelection
//step 1: prune subsumed plans of same type
if( memo.contains(current.getHopID()) ) {
- HashSet<MemoTableEntry> rmSet = new HashSet<MemoTableEntry>();
+ HashSet<MemoTableEntry> rmSet = new HashSet<>();
List<MemoTableEntry> hopP = memo.get(current.getHopID());
for( MemoTableEntry e1 : hopP )
for( MemoTableEntry e2 : hopP )
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/codegen/opt/ReachabilityGraph.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/codegen/opt/ReachabilityGraph.java b/src/main/java/org/apache/sysml/hops/codegen/opt/ReachabilityGraph.java
index fb7840b..90079a3 100644
--- a/src/main/java/org/apache/sysml/hops/codegen/opt/ReachabilityGraph.java
+++ b/src/main/java/org/apache/sysml/hops/codegen/opt/ReachabilityGraph.java
@@ -333,6 +333,15 @@ public class ReachabilityGraph
}
@Override
+ public int hashCode() {
+ return Arrays.hashCode(new int[]{
+ _inputs.hashCode(),
+ Long.hashCode(_ID),
+ _p.hashCode()
+ });
+ }
+
+ @Override
public boolean equals(Object o) {
if( !(o instanceof NodeLink) )
return false;
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/codegen/template/CPlanCSERewriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/codegen/template/CPlanCSERewriter.java b/src/main/java/org/apache/sysml/hops/codegen/template/CPlanCSERewriter.java
index 9916c0f..3d12cfe 100644
--- a/src/main/java/org/apache/sysml/hops/codegen/template/CPlanCSERewriter.java
+++ b/src/main/java/org/apache/sysml/hops/codegen/template/CPlanCSERewriter.java
@@ -48,7 +48,7 @@ public class CPlanCSERewriter
rSetStrictDataNodeComparision(out, true);
//step 2: perform common subexpression elimination
- HashMap<CNode,CNode> cseSet = new HashMap<CNode,CNode>();
+ HashMap<CNode,CNode> cseSet = new HashMap<>();
tpl.resetVisitStatusOutputs();
for( CNode out : outputs )
rEliminateCommonSubexpression(out, cseSet);
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/codegen/template/CPlanMemoTable.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/codegen/template/CPlanMemoTable.java b/src/main/java/org/apache/sysml/hops/codegen/template/CPlanMemoTable.java
index 6de3ec6..30672f3 100644
--- a/src/main/java/org/apache/sysml/hops/codegen/template/CPlanMemoTable.java
+++ b/src/main/java/org/apache/sysml/hops/codegen/template/CPlanMemoTable.java
@@ -51,9 +51,9 @@ public class CPlanMemoTable
protected HashSet<Long> _plansBlacklist;
public CPlanMemoTable() {
- _plans = new HashMap<Long, List<MemoTableEntry>>();
- _hopRefs = new HashMap<Long, Hop>();
- _plansBlacklist = new HashSet<Long>();
+ _plans = new HashMap<>();
+ _hopRefs = new HashMap<>();
+ _plansBlacklist = new HashSet<>();
}
public HashMap<Long, List<MemoTableEntry>> getPlans() {
@@ -182,7 +182,7 @@ public class CPlanMemoTable
//if single consumer of input; however this only applies to fusion
//heuristic that only consider materialization points)
if( pruneDominated ) {
- HashSet<MemoTableEntry> rmList = new HashSet<MemoTableEntry>();
+ HashSet<MemoTableEntry> rmList = new HashSet<>();
List<MemoTableEntry> list = _plans.get(hopID);
Hop hop = _hopRefs.get(hopID);
for( MemoTableEntry e1 : list )
@@ -210,7 +210,7 @@ public class CPlanMemoTable
LOG.trace("#1: Memo before plan selection ("+size()+" plans)\n"+this);
//build index of referenced entries
- HashSet<Long> ix = new HashSet<Long>();
+ HashSet<Long> ix = new HashSet<>();
for( Entry<Long, List<MemoTableEntry>> e : _plans.entrySet() )
for( MemoTableEntry me : e.getValue() ) {
ix.add(me.input1);
@@ -433,7 +433,7 @@ public class CPlanMemoTable
public static class MemoTableEntrySet
{
- public ArrayList<MemoTableEntry> plans = new ArrayList<MemoTableEntry>();
+ public ArrayList<MemoTableEntry> plans = new ArrayList<>();
public MemoTableEntrySet(Hop hop, Hop c, TemplateBase tpl) {
int pos = (c != null) ? hop.getInput().indexOf(c) : -1;
@@ -445,7 +445,7 @@ public class CPlanMemoTable
public void crossProduct(int pos, Long... refs) {
if( refs.length==1 && refs[0] == -1 )
return; //unmodified plan set
- ArrayList<MemoTableEntry> tmp = new ArrayList<MemoTableEntry>();
+ ArrayList<MemoTableEntry> tmp = new ArrayList<>();
for( MemoTableEntry me : plans )
for( Long ref : refs )
tmp.add(new MemoTableEntry(me.type, (pos==0)?ref:me.input1,
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/codegen/template/TemplateCell.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/codegen/template/TemplateCell.java b/src/main/java/org/apache/sysml/hops/codegen/template/TemplateCell.java
index b075c58..2b29ce2 100644
--- a/src/main/java/org/apache/sysml/hops/codegen/template/TemplateCell.java
+++ b/src/main/java/org/apache/sysml/hops/codegen/template/TemplateCell.java
@@ -115,8 +115,8 @@ public class TemplateCell extends TemplateBase
public Pair<Hop[], CNodeTpl> constructCplan(Hop hop, CPlanMemoTable memo, boolean compileLiterals)
{
//recursively process required cplan output
- HashSet<Hop> inHops = new HashSet<Hop>();
- HashMap<Long, CNode> tmp = new HashMap<Long, CNode>();
+ HashSet<Hop> inHops = new HashSet<>();
+ HashMap<Long, CNode> tmp = new HashMap<>();
hop.resetVisitStatus();
rConstructCplan(hop, memo, tmp, inHops, compileLiterals);
hop.resetVisitStatus();
@@ -129,7 +129,7 @@ public class TemplateCell extends TemplateBase
.sorted(new HopInputComparator()).toArray(Hop[]::new);
//construct template node
- ArrayList<CNode> inputs = new ArrayList<CNode>();
+ ArrayList<CNode> inputs = new ArrayList<>();
for( Hop in : sinHops )
inputs.add(tmp.get(in.getHopID()));
CNode output = tmp.get(hop.getHopID());
@@ -142,7 +142,7 @@ public class TemplateCell extends TemplateBase
tpl.setBeginLine(hop.getBeginLine());
// return cplan instance
- return new Pair<Hop[],CNodeTpl>(sinHops, tpl);
+ return new Pair<>(sinHops, tpl);
}
protected void rConstructCplan(Hop hop, CPlanMemoTable memo, HashMap<Long, CNode> tmp, HashSet<Hop> inHops, boolean compileLiterals)
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/codegen/template/TemplateMultiAgg.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/codegen/template/TemplateMultiAgg.java b/src/main/java/org/apache/sysml/hops/codegen/template/TemplateMultiAgg.java
index e9f4cd2..9b114b0 100644
--- a/src/main/java/org/apache/sysml/hops/codegen/template/TemplateMultiAgg.java
+++ b/src/main/java/org/apache/sysml/hops/codegen/template/TemplateMultiAgg.java
@@ -75,15 +75,15 @@ public class TemplateMultiAgg extends TemplateCell
{
//get all root nodes for multi aggregation
MemoTableEntry multiAgg = memo.getBest(hop.getHopID(), TemplateType.MAGG);
- ArrayList<Hop> roots = new ArrayList<Hop>();
+ ArrayList<Hop> roots = new ArrayList<>();
for( int i=0; i<3; i++ )
if( multiAgg.isPlanRef(i) )
roots.add(memo._hopRefs.get(multiAgg.input(i)));
Hop.resetVisitStatus(roots);
//recursively process required cplan outputs
- HashSet<Hop> inHops = new HashSet<Hop>();
- HashMap<Long, CNode> tmp = new HashMap<Long, CNode>();
+ HashSet<Hop> inHops = new HashSet<>();
+ HashMap<Long, CNode> tmp = new HashMap<>();
for( Hop root : roots ) //use celltpl cplan construction
super.rConstructCplan(root, memo, tmp, inHops, compileLiterals);
Hop.resetVisitStatus(roots);
@@ -97,11 +97,11 @@ public class TemplateMultiAgg extends TemplateCell
.sorted(new HopInputComparator(shared)).toArray(Hop[]::new);
//construct template node
- ArrayList<CNode> inputs = new ArrayList<CNode>();
+ ArrayList<CNode> inputs = new ArrayList<>();
for( Hop in : sinHops )
inputs.add(tmp.get(in.getHopID()));
- ArrayList<CNode> outputs = new ArrayList<CNode>();
- ArrayList<AggOp> aggOps = new ArrayList<AggOp>();
+ ArrayList<CNode> outputs = new ArrayList<>();
+ ArrayList<AggOp> aggOps = new ArrayList<>();
for( Hop root : roots ) {
CNode node = tmp.get(root.getHopID());
if( node instanceof CNodeData //add indexing ops for sideways data inputs
@@ -119,7 +119,7 @@ public class TemplateMultiAgg extends TemplateCell
tpl.setBeginLine(hop.getBeginLine());
// return cplan instance
- return new Pair<Hop[],CNodeTpl>(sinHops, tpl);
+ return new Pair<>(sinHops, tpl);
}
private Hop getSparseSafeSharedInput(ArrayList<Hop> roots, HashSet<Hop> inHops) {
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/codegen/template/TemplateOuterProduct.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/codegen/template/TemplateOuterProduct.java b/src/main/java/org/apache/sysml/hops/codegen/template/TemplateOuterProduct.java
index 3756447..cac9f9b 100644
--- a/src/main/java/org/apache/sysml/hops/codegen/template/TemplateOuterProduct.java
+++ b/src/main/java/org/apache/sysml/hops/codegen/template/TemplateOuterProduct.java
@@ -106,9 +106,9 @@ public class TemplateOuterProduct extends TemplateBase {
public Pair<Hop[], CNodeTpl> constructCplan(Hop hop, CPlanMemoTable memo, boolean compileLiterals)
{
//recursively process required cplan output
- HashSet<Hop> inHops = new HashSet<Hop>();
- HashMap<String,Hop> inHops2 = new HashMap<String, Hop>();
- HashMap<Long, CNode> tmp = new HashMap<Long, CNode>();
+ HashSet<Hop> inHops = new HashSet<>();
+ HashMap<String,Hop> inHops2 = new HashMap<>();
+ HashMap<Long, CNode> tmp = new HashMap<>();
hop.resetVisitStatus();
rConstructCplan(hop, memo, tmp, inHops, inHops2, compileLiterals);
hop.resetVisitStatus();
@@ -117,13 +117,13 @@ public class TemplateOuterProduct extends TemplateBase {
Hop X = inHops2.get("_X");
Hop U = inHops2.get("_U");
Hop V = inHops2.get("_V");
- LinkedList<Hop> sinHops = new LinkedList<Hop>(inHops);
+ LinkedList<Hop> sinHops = new LinkedList<>(inHops);
sinHops.remove(V); sinHops.addFirst(V);
sinHops.remove(U); sinHops.addFirst(U);
sinHops.remove(X); sinHops.addFirst(X);
//construct template node
- ArrayList<CNode> inputs = new ArrayList<CNode>();
+ ArrayList<CNode> inputs = new ArrayList<>();
for( Hop in : sinHops )
if( in != null )
inputs.add(tmp.get(in.getHopID()));
@@ -135,8 +135,7 @@ public class TemplateOuterProduct extends TemplateBase {
&& tpl.getOutProdType()==OutProdType.LEFT_OUTER_PRODUCT);
tpl.setBeginLine(hop.getBeginLine());
-
- return new Pair<Hop[],CNodeTpl>(sinHops.toArray(new Hop[0]), tpl);
+ return new Pair<>(sinHops.toArray(new Hop[0]), tpl);
}
private void rConstructCplan(Hop hop, CPlanMemoTable memo, HashMap<Long, CNode> tmp, HashSet<Hop> inHops, HashMap<String, Hop> inHops2, boolean compileLiterals)
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/codegen/template/TemplateRow.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/codegen/template/TemplateRow.java b/src/main/java/org/apache/sysml/hops/codegen/template/TemplateRow.java
index 1aaa84f..5f14d6b 100644
--- a/src/main/java/org/apache/sysml/hops/codegen/template/TemplateRow.java
+++ b/src/main/java/org/apache/sysml/hops/codegen/template/TemplateRow.java
@@ -175,9 +175,9 @@ public class TemplateRow extends TemplateBase
@Override
public Pair<Hop[], CNodeTpl> constructCplan(Hop hop, CPlanMemoTable memo, boolean compileLiterals) {
//recursively process required cplan output
- HashSet<Hop> inHops = new HashSet<Hop>();
- HashMap<String, Hop> inHops2 = new HashMap<String,Hop>();
- HashMap<Long, CNode> tmp = new HashMap<Long, CNode>();
+ HashSet<Hop> inHops = new HashSet<>();
+ HashMap<String, Hop> inHops2 = new HashMap<>();
+ HashMap<Long, CNode> tmp = new HashMap<>();
hop.resetVisitStatus();
rConstructCplan(hop, memo, tmp, inHops, inHops2, compileLiterals);
hop.resetVisitStatus();
@@ -189,7 +189,7 @@ public class TemplateRow extends TemplateBase
inHops2.putIfAbsent("X", sinHops[0]); //robustness special cases
//construct template node
- ArrayList<CNode> inputs = new ArrayList<CNode>();
+ ArrayList<CNode> inputs = new ArrayList<>();
for( Hop in : sinHops )
inputs.add(tmp.get(in.getHopID()));
CNode output = tmp.get(hop.getHopID());
@@ -205,7 +205,7 @@ public class TemplateRow extends TemplateBase
tpl.setBeginLine(hop.getBeginLine());
// return cplan instance
- return new Pair<Hop[],CNodeTpl>(sinHops, tpl);
+ return new Pair<>(sinHops, tpl);
}
private void rConstructCplan(Hop hop, CPlanMemoTable memo, HashMap<Long, CNode> tmp, HashSet<Hop> inHops, HashMap<String, Hop> inHops2, boolean compileLiterals)
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java b/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java
index 52a966e..a87221f 100644
--- a/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java
+++ b/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java
@@ -38,7 +38,7 @@ public class CostEstimationWrapper
public enum CostType {
NUM_MRJOBS, //based on number of MR jobs, [number MR jobs]
STATIC // based on FLOPS, read/write, etc, [time in sec]
- };
+ }
private static final boolean LDEBUG = false; //internal local debug level
private static final Log LOG = LogFactory.getLog(CostEstimationWrapper.class.getName());
@@ -72,7 +72,7 @@ public class CostEstimationWrapper
{
Timing time = new Timing(true);
- HashMap<String,VarStats> stats = new HashMap<String, VarStats>();
+ HashMap<String,VarStats> stats = new HashMap<>();
LocalVariableMap vars = (ec!=null)? ec.getVariables() : new LocalVariableMap();
double costs = _costEstim.getTimeEstimate(rtprog, vars, stats);
@@ -85,7 +85,7 @@ public class CostEstimationWrapper
{
Timing time = new Timing(true);
- HashMap<String,VarStats> stats = new HashMap<String, VarStats>();
+ HashMap<String,VarStats> stats = new HashMap<>();
LocalVariableMap vars = (ec!=null)? ec.getVariables() : new LocalVariableMap();
double costs = _costEstim.getTimeEstimate(pb, vars, stats, recursive);
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/cost/CostEstimator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/cost/CostEstimator.java b/src/main/java/org/apache/sysml/hops/cost/CostEstimator.java
index 6eff99b..9f46eb0 100644
--- a/src/main/java/org/apache/sysml/hops/cost/CostEstimator.java
+++ b/src/main/java/org/apache/sysml/hops/cost/CostEstimator.java
@@ -351,7 +351,7 @@ public abstract class CostEstimator
}
//compute intermediate result indices
- HashMap<Byte,MatrixCharacteristics> dims = new HashMap<Byte, MatrixCharacteristics>();
+ HashMap<Byte,MatrixCharacteristics> dims = new HashMap<>();
//populate input indices
for( Entry<String,VarStats> e : stats.entrySet() )
{
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/cost/CostEstimatorStaticRuntime.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/cost/CostEstimatorStaticRuntime.java b/src/main/java/org/apache/sysml/hops/cost/CostEstimatorStaticRuntime.java
index 7cdde47..ef89600 100644
--- a/src/main/java/org/apache/sysml/hops/cost/CostEstimatorStaticRuntime.java
+++ b/src/main/java/org/apache/sysml/hops/cost/CostEstimatorStaticRuntime.java
@@ -480,7 +480,7 @@ public class CostEstimatorStaticRuntime extends CostEstimator
//note: this is a simplified version of MRJobConfiguration.setUpOutputIndexesForMapper
//map indices
- HashSet<Byte> ixMap = new HashSet<Byte>();
+ HashSet<Byte> ixMap = new HashSet<>();
for( byte ix : inIx )
ixMap.add(ix);
@@ -501,7 +501,7 @@ public class CostEstimatorStaticRuntime extends CostEstimator
}
//reduce indices
- HashSet<Byte> ixRed = new HashSet<Byte>();
+ HashSet<Byte> ixRed = new HashSet<>();
for( byte ix : retIx )
ixRed.add(ix);
@@ -601,7 +601,7 @@ public class CostEstimatorStaticRuntime extends CostEstimator
private int getDistcacheIndex(String inst)
throws DMLRuntimeException
{
- ArrayList<Byte> indexes = new ArrayList<Byte>();
+ ArrayList<Byte> indexes = new ArrayList<>();
if( InstructionUtils.isDistributedCacheUsed(inst) ) {
MRInstruction mrinst = MRInstructionParser.parseSingleInstruction(inst);
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/globalopt/GDFEnumOptimizer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/globalopt/GDFEnumOptimizer.java b/src/main/java/org/apache/sysml/hops/globalopt/GDFEnumOptimizer.java
index 7e043be..73762ce 100644
--- a/src/main/java/org/apache/sysml/hops/globalopt/GDFEnumOptimizer.java
+++ b/src/main/java/org/apache/sysml/hops/globalopt/GDFEnumOptimizer.java
@@ -122,7 +122,7 @@ public class GDFEnumOptimizer extends GlobalOptimizer
//Step 2: dynamic programming plan generation
//(finally, pick optimal root plans over all interesting property sets)
- ArrayList<Plan> rootPlans = new ArrayList<Plan>();
+ ArrayList<Plan> rootPlans = new ArrayList<>();
for( GDFNode node : roots ) {
PlanSet ps = enumOpt(node, _memo, initCosts);
Plan optPlan = ps.getPlanWithMinCosts();
@@ -131,7 +131,7 @@ public class GDFEnumOptimizer extends GlobalOptimizer
long enumPlanMismatch = getPlanMismatches();
//check for final containment of independent roots and pick optimal
- HashMap<Long, Plan> memo = new HashMap<Long,Plan>();
+ HashMap<Long, Plan> memo = new HashMap<>();
resetPlanMismatches();
for( Plan p : rootPlans )
rSetRuntimePlanConfig(p, memo);
@@ -208,7 +208,7 @@ public class GDFEnumOptimizer extends GlobalOptimizer
private static PlanSet enumNodePlans( GDFNode node, MemoStructure memo, double maxCosts )
throws DMLRuntimeException
{
- ArrayList<Plan> plans = new ArrayList<Plan>();
+ ArrayList<Plan> plans = new ArrayList<>();
ExecType CLUSTER = OptimizerUtils.isSparkExecutionMode() ? ExecType.SPARK : ExecType.MR;
//ENUMERATE HOP PLANS
@@ -331,7 +331,7 @@ public class GDFEnumOptimizer extends GlobalOptimizer
private static void pruneInvalidPlans( PlanSet plans )
{
- ArrayList<Plan> valid = new ArrayList<Plan>();
+ ArrayList<Plan> valid = new ArrayList<>();
//check each plan in planset for validity
for( Plan plan : plans.getPlans() )
@@ -381,7 +381,7 @@ public class GDFEnumOptimizer extends GlobalOptimizer
}
//build and probe for optimal plans (hash-groupby on IPC, min costs)
- HashMap<InterestingProperties, Plan> probeMap = new HashMap<InterestingProperties, Plan>();
+ HashMap<InterestingProperties, Plan> probeMap = new HashMap<>();
for( Plan p : plans.getPlans() )
{
//max cost pruning filter (branch-and-bound)
@@ -407,7 +407,7 @@ public class GDFEnumOptimizer extends GlobalOptimizer
}
//copy over plans per IPC into one plan set
- ArrayList<Plan> optimal = new ArrayList<Plan>(probeMap.values());
+ ArrayList<Plan> optimal = new ArrayList<>(probeMap.values());
int sizeBefore = plans.size();
int sizeAfter = optimal.size();
@@ -451,7 +451,7 @@ public class GDFEnumOptimizer extends GlobalOptimizer
ArrayList<Hop> oldRoots = pb.getStatementBlock().get_hops();
Hop tmpHop = null;
if( !(currentHop instanceof DataOp && ((DataOp)currentHop).isWrite()) ){
- ArrayList<Hop> newRoots = new ArrayList<Hop>();
+ ArrayList<Hop> newRoots = new ArrayList<>();
tmpHop = new DataOp("_tmp", currentHop.getDataType(), currentHop.getValueType(), currentHop, DataOpTypes.TRANSIENTWRITE, "tmp");
tmpHop.setVisited(); //ensure recursive visitstatus reset on recompile
newRoots.add(tmpHop);
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/globalopt/MemoStructure.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/globalopt/MemoStructure.java b/src/main/java/org/apache/sysml/hops/globalopt/MemoStructure.java
index 5ee5b16..056db69 100644
--- a/src/main/java/org/apache/sysml/hops/globalopt/MemoStructure.java
+++ b/src/main/java/org/apache/sysml/hops/globalopt/MemoStructure.java
@@ -47,8 +47,8 @@ public class MemoStructure
public MemoStructure()
{
- _entries = new HashMap<Long, PlanSet>();
- _nodeIDs = new HashMap<Long, Long>();
+ _entries = new HashMap<>();
+ _nodeIDs = new HashMap<>();
}
///////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/globalopt/Plan.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/globalopt/Plan.java b/src/main/java/org/apache/sysml/hops/globalopt/Plan.java
index f8f06dc..d62c0fc 100644
--- a/src/main/java/org/apache/sysml/hops/globalopt/Plan.java
+++ b/src/main/java/org/apache/sysml/hops/globalopt/Plan.java
@@ -53,7 +53,7 @@ public class Plan
if( childs != null && !childs.isEmpty() )
_childs = childs;
else
- _childs = new ArrayList<Plan>();
+ _childs = new ArrayList<>();
}
public Plan( Plan p )
@@ -65,9 +65,9 @@ public class Plan
_costs = p._costs;
if( p._childs != null && !p._childs.isEmpty() )
- _childs = new ArrayList<Plan>(p._childs);
+ _childs = new ArrayList<>(p._childs);
else
- _childs = new ArrayList<Plan>();
+ _childs = new ArrayList<>();
}
public GDFNode getNode()
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/globalopt/PlanSet.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/globalopt/PlanSet.java b/src/main/java/org/apache/sysml/hops/globalopt/PlanSet.java
index a6487e6..41ee5f9 100644
--- a/src/main/java/org/apache/sysml/hops/globalopt/PlanSet.java
+++ b/src/main/java/org/apache/sysml/hops/globalopt/PlanSet.java
@@ -27,12 +27,10 @@ import org.apache.sysml.hops.globalopt.gdfgraph.GDFNode.NodeType;
public class PlanSet
{
-
private ArrayList<Plan> _plans = null;
- public PlanSet()
- {
- _plans = new ArrayList<Plan>();
+ public PlanSet() {
+ _plans = new ArrayList<>();
}
public PlanSet(ArrayList<Plan> plans)
@@ -78,7 +76,7 @@ public class PlanSet
return pc;
}
- ArrayList<Plan> Pnew = new ArrayList<Plan>();
+ ArrayList<Plan> Pnew = new ArrayList<>();
// create cross product of plansets between partial and child plans
for( Plan p : _plans )
@@ -97,7 +95,7 @@ public class PlanSet
String varname = (node.getNodeType()==NodeType.HOP_NODE) ? node.getHop().getName() :
((GDFCrossBlockNode)node).getName();
- ArrayList<Plan> Pnew = new ArrayList<Plan>();
+ ArrayList<Plan> Pnew = new ArrayList<>();
for( Plan p : _plans )
if( p.getNode().getHop()!=null
&&p.getNode().getHop().getName().equals(varname) )
@@ -110,7 +108,7 @@ public class PlanSet
public PlanSet union( PlanSet ps )
{
- ArrayList<Plan> Pnew = new ArrayList<Plan>(_plans);
+ ArrayList<Plan> Pnew = new ArrayList<>(_plans);
for( Plan p : ps._plans )
Pnew.add( p );
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/globalopt/gdfgraph/GDFCrossBlockNode.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/globalopt/gdfgraph/GDFCrossBlockNode.java b/src/main/java/org/apache/sysml/hops/globalopt/gdfgraph/GDFCrossBlockNode.java
index b4767f9..52d988d 100644
--- a/src/main/java/org/apache/sysml/hops/globalopt/gdfgraph/GDFCrossBlockNode.java
+++ b/src/main/java/org/apache/sysml/hops/globalopt/gdfgraph/GDFCrossBlockNode.java
@@ -52,7 +52,7 @@ public class GDFCrossBlockNode extends GDFNode
{
super(hop, pb, null);
_type = NodeType.CROSS_BLOCK_NODE;
- _inputs = new ArrayList<GDFNode>();
+ _inputs = new ArrayList<>();
_inputs.add( input );
_cbtype = CrossBlockNodeType.PLAIN;
@@ -72,7 +72,7 @@ public class GDFCrossBlockNode extends GDFNode
{
super(hop, pb, null);
_type = NodeType.CROSS_BLOCK_NODE;
- _inputs = new ArrayList<GDFNode>();
+ _inputs = new ArrayList<>();
_inputs.add( input1 );
_inputs.add( input2 );
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/globalopt/gdfgraph/GDFLoopNode.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/globalopt/gdfgraph/GDFLoopNode.java b/src/main/java/org/apache/sysml/hops/globalopt/gdfgraph/GDFLoopNode.java
index fb4a9af..010ca1d 100644
--- a/src/main/java/org/apache/sysml/hops/globalopt/gdfgraph/GDFLoopNode.java
+++ b/src/main/java/org/apache/sysml/hops/globalopt/gdfgraph/GDFLoopNode.java
@@ -33,7 +33,7 @@ public class GDFLoopNode extends GDFNode
public GDFLoopNode( ProgramBlock pb, GDFNode predicate, HashMap<String, GDFNode> inputs, HashMap<String,GDFNode> outputs )
{
- super(null, pb, new ArrayList<GDFNode>(inputs.values()));
+ super(null, pb, new ArrayList<>(inputs.values()));
_type = NodeType.LOOP_NODE;
_predicate = predicate;
_linputs = inputs;
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/globalopt/gdfgraph/GraphBuilder.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/globalopt/gdfgraph/GraphBuilder.java b/src/main/java/org/apache/sysml/hops/globalopt/gdfgraph/GraphBuilder.java
index 8d52cc2..e768854 100644
--- a/src/main/java/org/apache/sysml/hops/globalopt/gdfgraph/GraphBuilder.java
+++ b/src/main/java/org/apache/sysml/hops/globalopt/gdfgraph/GraphBuilder.java
@@ -67,12 +67,12 @@ public class GraphBuilder
{
Timing time = new Timing(true);
- HashMap<String, GDFNode> roots = new HashMap<String, GDFNode>();
+ HashMap<String, GDFNode> roots = new HashMap<>();
for( ProgramBlock pb : prog.getProgramBlocks() )
constructGDFGraph( pb, roots );
//create GDF graph root nodes
- ArrayList<GDFNode> ret = new ArrayList<GDFNode>();
+ ArrayList<GDFNode> ret = new ArrayList<>();
for( GDFNode root : roots.values() )
if( !(root instanceof GDFCrossBlockNode) )
ret.add(root);
@@ -80,7 +80,7 @@ public class GraphBuilder
//create GDF graph
GDFGraph graph = new GDFGraph(prog, ret);
- summary.setTimeGDFGraph(time.stop());
+ summary.setTimeGDFGraph(time.stop());
return graph;
}
@@ -151,7 +151,7 @@ public class GraphBuilder
if( hops != null )
{
//create new local memo structure for local dag
- HashMap<Long, GDFNode> lmemo = new HashMap<Long, GDFNode>();
+ HashMap<Long, GDFNode> lmemo = new HashMap<>();
for( Hop hop : hops )
{
//recursively construct GDF graph for hop dag root
@@ -177,7 +177,7 @@ public class GraphBuilder
return lmemo.get(hop.getHopID());
//process childs recursively first
- ArrayList<GDFNode> inputs = new ArrayList<GDFNode>();
+ ArrayList<GDFNode> inputs = new ArrayList<>();
for( Hop c : hop.getInput() )
inputs.add( constructGDFGraph(c, pb, lmemo, roots) );
@@ -206,11 +206,11 @@ public class GraphBuilder
private static GDFNode constructForPredicateNode(ForProgramBlock fpb, ForStatementBlock fsb, HashMap<String, GDFNode> roots)
{
- HashMap<Long, GDFNode> memo = new HashMap<Long, GDFNode>();
+ HashMap<Long, GDFNode> memo = new HashMap<>();
GDFNode from = (fsb.getFromHops()!=null)? constructGDFGraph(fsb.getFromHops(), fpb, memo, roots) : null;
GDFNode to = (fsb.getToHops()!=null)? constructGDFGraph(fsb.getToHops(), fpb, memo, roots) : null;
GDFNode incr = (fsb.getIncrementHops()!=null)? constructGDFGraph(fsb.getIncrementHops(), fpb, memo, roots) : null;
- ArrayList<GDFNode> inputs = new ArrayList<GDFNode>();
+ ArrayList<GDFNode> inputs = new ArrayList<>();
inputs.add(from);
inputs.add(to);
inputs.add(incr);
@@ -223,7 +223,7 @@ public class GraphBuilder
private static HashMap<String, GDFNode> constructLoopInputNodes( ProgramBlock fpb, StatementBlock fsb, HashMap<String, GDFNode> roots )
throws DMLRuntimeException
{
- HashMap<String, GDFNode> ret = new HashMap<String, GDFNode>();
+ HashMap<String, GDFNode> ret = new HashMap<>();
Set<String> invars = fsb.variablesRead().getVariableNames();
for( String var : invars ) {
if( fsb.liveIn().containsVariable(var) ) {
@@ -240,7 +240,7 @@ public class GraphBuilder
private static HashMap<String, GDFNode> constructLoopOutputNodes( StatementBlock fsb, HashMap<String, GDFNode> roots )
throws HopsException
{
- HashMap<String, GDFNode> ret = new HashMap<String, GDFNode>();
+ HashMap<String, GDFNode> ret = new HashMap<>();
Set<String> outvars = fsb.variablesUpdated().getVariableNames();
for( String var : outvars )
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/ipa/FunctionCallGraph.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/ipa/FunctionCallGraph.java b/src/main/java/org/apache/sysml/hops/ipa/FunctionCallGraph.java
index c6c3016..d719da7 100644
--- a/src/main/java/org/apache/sysml/hops/ipa/FunctionCallGraph.java
+++ b/src/main/java/org/apache/sysml/hops/ipa/FunctionCallGraph.java
@@ -66,9 +66,9 @@ public class FunctionCallGraph
* @param prog dml program of given script
*/
public FunctionCallGraph(DMLProgram prog) {
- _fGraph = new HashMap<String, HashSet<String>>();
- _fCalls = new HashMap<String, ArrayList<FunctionOp>>();
- _fRecursive = new HashSet<String>();
+ _fGraph = new HashMap<>();
+ _fCalls = new HashMap<>();
+ _fRecursive = new HashSet<>();
constructFunctionCallGraph(prog);
}
@@ -80,9 +80,9 @@ public class FunctionCallGraph
* @param sb statement block (potentially hierarchical)
*/
public FunctionCallGraph(StatementBlock sb) {
- _fGraph = new HashMap<String, HashSet<String>>();
- _fCalls = new HashMap<String, ArrayList<FunctionOp>>();
- _fRecursive = new HashSet<String>();
+ _fGraph = new HashMap<>();
+ _fCalls = new HashMap<>();
+ _fRecursive = new HashSet<>();
constructFunctionCallGraph(sb);
}
@@ -96,7 +96,7 @@ public class FunctionCallGraph
*/
public Set<String> getCalledFunctions(String fnamespace, String fname) {
return getCalledFunctions(
- DMLProgram.constructFunctionKey(fnamespace, fname));
+ DMLProgram.constructFunctionKey(fnamespace, fname));
}
/**
@@ -205,8 +205,8 @@ public class FunctionCallGraph
return; //early abort if prog without functions
try {
- Stack<String> fstack = new Stack<String>();
- HashSet<String> lfset = new HashSet<String>();
+ Stack<String> fstack = new Stack<>();
+ HashSet<String> lfset = new HashSet<>();
_fGraph.put(MAIN_FUNCTION_KEY, new HashSet<String>());
for( StatementBlock sblk : prog.getStatementBlocks() )
rConstructFunctionCallGraph(MAIN_FUNCTION_KEY, sblk, fstack, lfset);
@@ -221,8 +221,8 @@ public class FunctionCallGraph
return; //early abort if prog without functions
try {
- Stack<String> fstack = new Stack<String>();
- HashSet<String> lfset = new HashSet<String>();
+ Stack<String> fstack = new Stack<>();
+ HashSet<String> lfset = new HashSet<>();
_fGraph.put(MAIN_FUNCTION_KEY, new HashSet<String>());
rConstructFunctionCallGraph(MAIN_FUNCTION_KEY, sb, fstack, lfset);
}
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/ipa/FunctionCallSizeInfo.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/ipa/FunctionCallSizeInfo.java b/src/main/java/org/apache/sysml/hops/ipa/FunctionCallSizeInfo.java
index cea16e5..337f7da 100644
--- a/src/main/java/org/apache/sysml/hops/ipa/FunctionCallSizeInfo.java
+++ b/src/main/java/org/apache/sysml/hops/ipa/FunctionCallSizeInfo.java
@@ -88,10 +88,10 @@ public class FunctionCallSizeInfo
throws HopsException
{
_fgraph = fgraph;
- _fcand = new HashSet<String>();
- _fcandUnary = new HashSet<String>();
- _fcandSafeNNZ = new HashMap<String, Set<Integer>>();
- _fSafeLiterals = new HashMap<String, Set<Integer>>();
+ _fcand = new HashSet<>();
+ _fcandUnary = new HashSet<>();
+ _fcandSafeNNZ = new HashMap<>();
+ _fSafeLiterals = new HashMap<>();
constructFunctionCallSizeInfo();
}
@@ -254,7 +254,7 @@ public class FunctionCallSizeInfo
//(considered for valid functions only)
for( String fkey : _fcand ) {
FunctionOp first = _fgraph.getFunctionCalls(fkey).get(0);
- HashSet<Integer> tmp = new HashSet<Integer>();
+ HashSet<Integer> tmp = new HashSet<>();
for( int j=0; j<first.getInput().size(); j++ ) {
//if nnz known it is safe to propagate those nnz because for multiple calls
//we checked of equivalence and hence all calls have the same nnz
@@ -271,7 +271,7 @@ public class FunctionCallSizeInfo
List<FunctionOp> flist = _fgraph.getFunctionCalls(fkey);
FunctionOp first = flist.get(0);
//initialize w/ all literals of first call
- HashSet<Integer> tmp = new HashSet<Integer>();
+ HashSet<Integer> tmp = new HashSet<>();
for( int j=0; j<first.getInput().size(); j++ )
if( first.getInput().get(j) instanceof LiteralOp )
tmp.add(j);
@@ -292,6 +292,17 @@ public class FunctionCallSizeInfo
}
@Override
+ public int hashCode() {
+ return Arrays.hashCode(new int[] {
+ _fgraph.hashCode(),
+ _fcand.hashCode(),
+ _fcandUnary.hashCode(),
+ _fcandSafeNNZ.hashCode(),
+ _fSafeLiterals.hashCode()
+ });
+ }
+
+ @Override
public boolean equals(Object o) {
if( o instanceof FunctionCallSizeInfo )
return false;
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/ipa/IPAPassRemoveConstantBinaryOps.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/ipa/IPAPassRemoveConstantBinaryOps.java b/src/main/java/org/apache/sysml/hops/ipa/IPAPassRemoveConstantBinaryOps.java
index 1a433a3..6b110c8 100644
--- a/src/main/java/org/apache/sysml/hops/ipa/IPAPassRemoveConstantBinaryOps.java
+++ b/src/main/java/org/apache/sysml/hops/ipa/IPAPassRemoveConstantBinaryOps.java
@@ -61,8 +61,8 @@ public class IPAPassRemoveConstantBinaryOps extends IPAPass
throws HopsException
{
//approach: scan over top-level program (guaranteed to be unconditional),
- //collect ones=matrix(1,...); remove b(*)ones if not outer operation
- HashMap<String, Hop> mOnes = new HashMap<String, Hop>();
+ //collect ones=matrix(1,...); remove b(*)ones if not outer operation
+ HashMap<String, Hop> mOnes = new HashMap<>();
for( StatementBlock sb : prog.getStatementBlocks() )
{
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/ipa/IPAPassRemoveUnnecessaryCheckpoints.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/ipa/IPAPassRemoveUnnecessaryCheckpoints.java b/src/main/java/org/apache/sysml/hops/ipa/IPAPassRemoveUnnecessaryCheckpoints.java
index 664ec2a..1c2c6b9 100644
--- a/src/main/java/org/apache/sysml/hops/ipa/IPAPassRemoveUnnecessaryCheckpoints.java
+++ b/src/main/java/org/apache/sysml/hops/ipa/IPAPassRemoveUnnecessaryCheckpoints.java
@@ -76,12 +76,12 @@ public class IPAPassRemoveUnnecessaryCheckpoints extends IPAPass
//collect checkpoints; determine if used before update; remove first checkpoint
//on second checkpoint if update in between and not used before update
- HashMap<String, Hop> chkpointCand = new HashMap<String, Hop>();
+ HashMap<String, Hop> chkpointCand = new HashMap<>();
for( StatementBlock sb : dmlp.getStatementBlocks() )
{
//prune candidates (used before updated)
- Set<String> cands = new HashSet<String>(chkpointCand.keySet());
+ Set<String> cands = new HashSet<>(chkpointCand.keySet());
for( String cand : cands )
if( sb.variablesRead().containsVariable(cand)
&& !sb.variablesUpdated().containsVariable(cand) )
@@ -101,7 +101,7 @@ public class IPAPassRemoveUnnecessaryCheckpoints extends IPAPass
}
//prune candidates (updated in conditional control flow)
- Set<String> cands2 = new HashSet<String>(chkpointCand.keySet());
+ Set<String> cands2 = new HashSet<>(chkpointCand.keySet());
if( sb instanceof IfStatementBlock || sb instanceof WhileStatementBlock
|| sb instanceof ForStatementBlock )
{
@@ -129,7 +129,7 @@ public class IPAPassRemoveUnnecessaryCheckpoints extends IPAPass
ArrayList<Hop> tmp = collectCheckpoints(sb.get_hops());
for( Hop chkpoint : tmp ) {
if( chkpointCand.containsKey(chkpoint.getName()) ) {
- chkpointCand.get(chkpoint.getName()).setRequiresCheckpoint(false);
+ chkpointCand.get(chkpoint.getName()).setRequiresCheckpoint(false);
}
chkpointCand.put(chkpoint.getName(), chkpoint);
}
@@ -145,12 +145,12 @@ public class IPAPassRemoveUnnecessaryCheckpoints extends IPAPass
//after update if not used before update (best effort move which often avoids
//the second checkpoint on loops even though used in between)
- HashMap<String, Hop> chkpointCand = new HashMap<String, Hop>();
+ HashMap<String, Hop> chkpointCand = new HashMap<>();
for( StatementBlock sb : dmlp.getStatementBlocks() )
{
//prune candidates (used before updated)
- Set<String> cands = new HashSet<String>(chkpointCand.keySet());
+ Set<String> cands = new HashSet<>(chkpointCand.keySet());
for( String cand : cands )
if( sb.variablesRead().containsVariable(cand)
&& !sb.variablesUpdated().containsVariable(cand) )
@@ -170,7 +170,7 @@ public class IPAPassRemoveUnnecessaryCheckpoints extends IPAPass
}
//prune candidates (updated in conditional control flow)
- Set<String> cands2 = new HashSet<String>(chkpointCand.keySet());
+ Set<String> cands2 = new HashSet<>(chkpointCand.keySet());
if( sb instanceof IfStatementBlock || sb instanceof WhileStatementBlock
|| sb instanceof ForStatementBlock )
{
@@ -228,7 +228,7 @@ public class IPAPassRemoveUnnecessaryCheckpoints extends IPAPass
private static ArrayList<Hop> collectCheckpoints(ArrayList<Hop> roots)
{
- ArrayList<Hop> ret = new ArrayList<Hop>();
+ ArrayList<Hop> ret = new ArrayList<>();
if( roots != null ) {
Hop.resetVisitStatus(roots);
for( Hop root : roots )
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/ipa/InterProceduralAnalysis.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/ipa/InterProceduralAnalysis.java b/src/main/java/org/apache/sysml/hops/ipa/InterProceduralAnalysis.java
index 024b456..1aafe0b 100644
--- a/src/main/java/org/apache/sysml/hops/ipa/InterProceduralAnalysis.java
+++ b/src/main/java/org/apache/sysml/hops/ipa/InterProceduralAnalysis.java
@@ -129,7 +129,7 @@ public class InterProceduralAnalysis
_fgraph = new FunctionCallGraph(dmlp);
//create order list of IPA passes
- _passes = new ArrayList<IPAPass>();
+ _passes = new ArrayList<>();
_passes.add(new IPAPassRemoveUnusedFunctions());
_passes.add(new IPAPassFlagFunctionsRecompileOnce());
_passes.add(new IPAPassRemoveUnnecessaryCheckpoints());
@@ -145,7 +145,7 @@ public class InterProceduralAnalysis
_fgraph = new FunctionCallGraph(sb);
//create order list of IPA passes
- _passes = new ArrayList<IPAPass>();
+ _passes = new ArrayList<>();
}
/**
@@ -251,7 +251,7 @@ public class InterProceduralAnalysis
//check size-preserving characteristic
if( ret ) {
FunctionCallSizeInfo fcallSizes = new FunctionCallSizeInfo(_fgraph, false);
- HashSet<String> fnStack = new HashSet<String>();
+ HashSet<String> fnStack = new HashSet<>();
LocalVariableMap callVars = new LocalVariableMap();
//populate input
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/recompile/LiteralReplacement.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/recompile/LiteralReplacement.java b/src/main/java/org/apache/sysml/hops/recompile/LiteralReplacement.java
index d7b97e9..f0c8955 100644
--- a/src/main/java/org/apache/sysml/hops/recompile/LiteralReplacement.java
+++ b/src/main/java/org/apache/sysml/hops/recompile/LiteralReplacement.java
@@ -82,7 +82,7 @@ public class LiteralReplacement
//because hop c marked as visited, and (2) repeated evaluation of uagg ops
if( c.getParent().size() > 1 ) { //multiple parents
- ArrayList<Hop> parents = new ArrayList<Hop>(c.getParent());
+ ArrayList<Hop> parents = new ArrayList<>(c.getParent());
for( Hop p : parents ) {
int pos = HopRewriteUtils.getChildReferencePos(p, c);
HopRewriteUtils.removeChildReferenceByPos(p, c, pos);
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/recompile/RecompileStatus.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/recompile/RecompileStatus.java b/src/main/java/org/apache/sysml/hops/recompile/RecompileStatus.java
index c16244f..f40422b 100644
--- a/src/main/java/org/apache/sysml/hops/recompile/RecompileStatus.java
+++ b/src/main/java/org/apache/sysml/hops/recompile/RecompileStatus.java
@@ -33,7 +33,7 @@ public class RecompileStatus
}
public RecompileStatus(boolean initialCodegen) {
- _lastTWrites = new HashMap<String,MatrixCharacteristics>();
+ _lastTWrites = new HashMap<>();
_initialCodegen = initialCodegen;
}
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java b/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java
index df6746b..463e41b 100644
--- a/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java
+++ b/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java
@@ -237,7 +237,7 @@ public class Recompiler
}
// construct lops
- Dag<Lop> dag = new Dag<Lop>();
+ Dag<Lop> dag = new Dag<>();
for( Hop hopRoot : hops ){
Lop lops = hopRoot.constructLops();
lops.addToDag(dag);
@@ -352,7 +352,7 @@ public class Recompiler
}
// construct lops
- Dag<Lop> dag = new Dag<Lop>();
+ Dag<Lop> dag = new Dag<>();
Lop lops = hops.constructLops();
lops.addToDag(dag);
@@ -413,14 +413,14 @@ public class Recompiler
Hop.resetVisitStatus(hops);
// construct lops
- Dag<Lop> dag = new Dag<Lop>();
+ Dag<Lop> dag = new Dag<>();
for( Hop hopRoot : hops ){
Lop lops = hopRoot.constructLops();
lops.addToDag(dag);
}
// generate runtime instructions (incl piggybacking)
- newInst = dag.getJobs(sb, ConfigurationManager.getDMLConfig());
+ newInst = dag.getJobs(sb, ConfigurationManager.getDMLConfig());
}
// replace thread ids in new instructions
@@ -465,10 +465,10 @@ public class Recompiler
rSetExecType( hops, et );
hops.resetVisitStatus();
- // construct lops
- Dag<Lop> dag = new Dag<Lop>();
+ // construct lops
+ Dag<Lop> dag = new Dag<>();
Lop lops = hops.constructLops();
- lops.addToDag(dag);
+ lops.addToDag(dag);
// generate runtime instructions (incl piggybacking)
newInst = dag.getJobs(null, ConfigurationManager.getDMLConfig());
@@ -498,8 +498,8 @@ public class Recompiler
for( Hop hopRoot : hops )
rClearLops( hopRoot );
- // construct lops
- Dag<Lop> dag = new Dag<Lop>();
+ // construct lops
+ Dag<Lop> dag = new Dag<>();
for( Hop hopRoot : hops ){
Lop lops = hopRoot.constructLops();
lops.addToDag(dag);
@@ -537,10 +537,10 @@ public class Recompiler
hops.resetVisitStatus();
rClearLops( hops );
- // construct lops
- Dag<Lop> dag = new Dag<Lop>();
+ // construct lops
+ Dag<Lop> dag = new Dag<>();
Lop lops = hops.constructLops();
- lops.addToDag(dag);
+ lops.addToDag(dag);
// generate runtime instructions (incl piggybacking)
newInst = dag.getJobs(null, ConfigurationManager.getDMLConfig());
@@ -702,12 +702,12 @@ public class Recompiler
public static ArrayList<Hop> deepCopyHopsDag( ArrayList<Hop> hops )
throws HopsException
{
- ArrayList<Hop> ret = new ArrayList<Hop>();
+ ArrayList<Hop> ret = new ArrayList<>();
try {
//note: need memo table over all independent DAGs in order to
//account for shared transient reads (otherwise more instructions generated)
- HashMap<Long, Hop> memo = new HashMap<Long, Hop>(); //orig ID, new clone
+ HashMap<Long, Hop> memo = new HashMap<>(); //orig ID, new clone
for( Hop hopRoot : hops )
ret.add(rDeepCopyHopsDag(hopRoot, memo));
}
@@ -732,7 +732,7 @@ public class Recompiler
Hop ret = null;
try {
- HashMap<Long, Hop> memo = new HashMap<Long, Hop>(); //orig ID, new clone
+ HashMap<Long, Hop> memo = new HashMap<>(); //orig ID, new clone
ret = rDeepCopyHopsDag(hops, memo);
}
catch(Exception ex)
@@ -752,7 +752,7 @@ public class Recompiler
if( ret == null )
{
ret = (Hop) hops.clone();
- ArrayList<Hop> tmp = new ArrayList<Hop>();
+ ArrayList<Hop> tmp = new ArrayList<>();
//create new childs
for( Hop in : hops.getInput() )
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/rewrite/HopRewriteUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/HopRewriteUtils.java b/src/main/java/org/apache/sysml/hops/rewrite/HopRewriteUtils.java
index 2d58f4c..d96d1e4 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/HopRewriteUtils.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/HopRewriteUtils.java
@@ -303,7 +303,7 @@ public class HopRewriteUtils
new UnaryOp("tmpcols", DataType.SCALAR, ValueType.INT, OpOp1.NCOL, input);
Hop val = new LiteralOp(value);
- HashMap<String, Hop> params = new HashMap<String, Hop>();
+ HashMap<String, Hop> params = new HashMap<>();
params.put(DataExpression.RAND_ROWS, rows);
params.put(DataExpression.RAND_COLS, cols);
params.put(DataExpression.RAND_MIN, val);
@@ -359,14 +359,14 @@ public class HopRewriteUtils
Hop sminHop = new LiteralOp(smin);
Hop smaxHop = new LiteralOp(smax);
- HashMap<String, Hop> params2 = new HashMap<String, Hop>();
+ HashMap<String, Hop> params2 = new HashMap<>();
params2.put(DataExpression.RAND_ROWS, rows);
params2.put(DataExpression.RAND_COLS, cols);
params2.put(DataExpression.RAND_MIN, sminHop);
params2.put(DataExpression.RAND_MAX, smaxHop);
params2.put(DataExpression.RAND_PDF, pdf);
params2.put(DataExpression.RAND_LAMBDA, mean);
- params2.put(DataExpression.RAND_SPARSITY, sparsity);
+ params2.put(DataExpression.RAND_SPARSITY, sparsity);
params2.put(DataExpression.RAND_SEED, seed );
//note internal refresh size information
@@ -389,7 +389,7 @@ public class HopRewriteUtils
new UnaryOp("tmpcols", DataType.SCALAR, ValueType.INT, OpOp1.NCOL, colInput);
Hop val = new LiteralOp(value);
- HashMap<String, Hop> params = new HashMap<String, Hop>();
+ HashMap<String, Hop> params = new HashMap<>();
params.put(DataExpression.RAND_ROWS, rows);
params.put(DataExpression.RAND_COLS, cols);
params.put(DataExpression.RAND_MIN, val);
@@ -422,7 +422,7 @@ public class HopRewriteUtils
new UnaryOp("tmpcols", DataType.SCALAR, ValueType.INT, tColInput?OpOp1.NROW:OpOp1.NCOL, colInput);
Hop val = new LiteralOp(value);
- HashMap<String, Hop> params = new HashMap<String, Hop>();
+ HashMap<String, Hop> params = new HashMap<>();
params.put(DataExpression.RAND_ROWS, rows);
params.put(DataExpression.RAND_COLS, cols);
params.put(DataExpression.RAND_MIN, val);
@@ -448,7 +448,7 @@ public class HopRewriteUtils
{
Hop val = new LiteralOp(value);
- HashMap<String, Hop> params = new HashMap<String, Hop>();
+ HashMap<String, Hop> params = new HashMap<>();
params.put(DataExpression.RAND_ROWS, rowInput);
params.put(DataExpression.RAND_COLS, colInput);
params.put(DataExpression.RAND_MIN, val);
@@ -622,7 +622,7 @@ public class HopRewriteUtils
Hop to = (input.getDim1()>0) ? new LiteralOp(input.getDim1()) :
new UnaryOp("tmprows", DataType.SCALAR, ValueType.INT, OpOp1.NROW, input);
- HashMap<String, Hop> params = new HashMap<String, Hop>();
+ HashMap<String, Hop> params = new HashMap<>();
if( asc ) {
params.put(Statement.SEQ_FROM, new LiteralOp(1));
params.put(Statement.SEQ_TO, to);
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/src/main/java/org/apache/sysml/hops/rewrite/ProgramRewriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/rewrite/ProgramRewriter.java b/src/main/java/org/apache/sysml/hops/rewrite/ProgramRewriter.java
index 737e5e8..c56b2ed 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/ProgramRewriter.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/ProgramRewriter.java
@@ -74,10 +74,10 @@ public class ProgramRewriter
public ProgramRewriter( boolean staticRewrites, boolean dynamicRewrites )
{
//initialize HOP DAG rewrite ruleSet (with fixed rewrite order)
- _dagRuleSet = new ArrayList<HopRewriteRule>();
+ _dagRuleSet = new ArrayList<>();
//initialize StatementBlock rewrite ruleSet (with fixed rewrite order)
- _sbRuleSet = new ArrayList<StatementBlockRewriteRule>();
+ _sbRuleSet = new ArrayList<>();
//STATIC REWRITES (which do not rely on size information)
@@ -145,11 +145,11 @@ public class ProgramRewriter
*/
public ProgramRewriter( HopRewriteRule... rewrites ) {
//initialize HOP DAG rewrite ruleSet (with fixed rewrite order)
- _dagRuleSet = new ArrayList<HopRewriteRule>();
+ _dagRuleSet = new ArrayList<>();
for( HopRewriteRule rewrite : rewrites )
- _dagRuleSet.add( rewrite );
+ _dagRuleSet.add( rewrite );
- _sbRuleSet = new ArrayList<StatementBlockRewriteRule>();
+ _sbRuleSet = new ArrayList<>();
}
/**
@@ -159,9 +159,9 @@ public class ProgramRewriter
*/
public ProgramRewriter( StatementBlockRewriteRule... rewrites ) {
//initialize HOP DAG rewrite ruleSet (with fixed rewrite order)
- _dagRuleSet = new ArrayList<HopRewriteRule>();
+ _dagRuleSet = new ArrayList<>();
- _sbRuleSet = new ArrayList<StatementBlockRewriteRule>();
+ _sbRuleSet = new ArrayList<>();
for( StatementBlockRewriteRule rewrite : rewrites )
_sbRuleSet.add( rewrite );
}
@@ -174,10 +174,10 @@ public class ProgramRewriter
*/
public ProgramRewriter(ArrayList<HopRewriteRule> hRewrites, ArrayList<StatementBlockRewriteRule> sbRewrites) {
//initialize HOP DAG rewrite ruleSet (with fixed rewrite order)
- _dagRuleSet = new ArrayList<HopRewriteRule>();
+ _dagRuleSet = new ArrayList<>();
_dagRuleSet.addAll( hRewrites );
- _sbRuleSet = new ArrayList<StatementBlockRewriteRule>();
+ _sbRuleSet = new ArrayList<>();
_sbRuleSet.addAll( sbRewrites );
}
@@ -300,7 +300,7 @@ public class ProgramRewriter
tmp = r.rewriteStatementBlocks(tmp, status);
//recursively rewrite statement blocks (with potential expansion)
- List<StatementBlock> tmp2 = new ArrayList<StatementBlock>();
+ List<StatementBlock> tmp2 = new ArrayList<>();
for( StatementBlock sb : tmp )
tmp2.addAll( rRewriteStatementBlock(sb, status) );
@@ -317,7 +317,7 @@ public class ProgramRewriter
public ArrayList<StatementBlock> rRewriteStatementBlock( StatementBlock sb, ProgramRewriteStatus status )
throws HopsException
{
- ArrayList<StatementBlock> ret = new ArrayList<StatementBlock>();
+ ArrayList<StatementBlock> ret = new ArrayList<>();
ret.add(sb);
//recursive invocation
@@ -356,7 +356,7 @@ public class ProgramRewriter
//apply rewrite rules to individual statement blocks
for( StatementBlockRewriteRule r : _sbRuleSet ) {
- ArrayList<StatementBlock> tmp = new ArrayList<StatementBlock>();
+ ArrayList<StatementBlock> tmp = new ArrayList<>();
for( StatementBlock sbc : ret )
tmp.addAll( r.rewriteStatementBlock(sbc, status) );
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/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 8513d27..dcb729e 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
@@ -1092,7 +1092,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
//remove all parent links to binary op (since we want to reorder
//we cannot just look at the current parent)
ArrayList<Hop> parents = (ArrayList<Hop>) hi.getParent().clone();
- ArrayList<Integer> parentspos = new ArrayList<Integer>();
+ ArrayList<Integer> parentspos = new ArrayList<>();
for(Hop lparent : parents) {
int lpos = HopRewriteUtils.getChildReferencePos(lparent, hi);
HopRewriteUtils.removeChildReferenceByPos(lparent, hi, lpos);
@@ -2559,7 +2559,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
&& HopRewriteUtils.isLiteralOfValue(hi.getInput().get(3), second.getDim1()) )
{
//setup input parameter hops
- HashMap<String,Hop> args = new HashMap<String,Hop>();
+ HashMap<String,Hop> args = new HashMap<>();
args.put("target", second);
args.put("max", hi.getInput().get(4));
args.put("dir", new LiteralOp("cols"));
@@ -2580,7 +2580,7 @@ public class RewriteAlgebraicSimplificationDynamic extends HopRewriteRule
&& HopRewriteUtils.isLiteralOfValue(hi.getInput().get(4), first.getDim1()) )
{
//setup input parameter hops
- HashMap<String,Hop> args = new HashMap<String,Hop>();
+ HashMap<String,Hop> args = new HashMap<>();
args.put("target", first);
args.put("max", hi.getInput().get(3));
args.put("dir", new LiteralOp("rows"));
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/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 d100989..4e5f3fb 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationStatic.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationStatic.java
@@ -383,7 +383,7 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
}
//rewire all parents (avoid anomalies with replicated datagen)
- List<Hop> parents = new ArrayList<Hop>(bop.getParent());
+ List<Hop> parents = new ArrayList<>(bop.getParent());
for( Hop p : parents )
HopRewriteUtils.replaceChildReference(p, bop, gen);
@@ -415,7 +415,7 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
}
//rewire all parents (avoid anomalies with replicated datagen)
- List<Hop> parents = new ArrayList<Hop>(bop.getParent());
+ List<Hop> parents = new ArrayList<>(bop.getParent());
for( Hop p : parents )
HopRewriteUtils.replaceChildReference(p, bop, gen);
@@ -465,12 +465,12 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
HopRewriteUtils.addChildReference(inputGen, newMax, ixMax);
//rewire all parents (avoid anomalies with replicated datagen)
- List<Hop> parents = new ArrayList<Hop>(bop.getParent());
+ List<Hop> parents = new ArrayList<>(bop.getParent());
for( Hop p : parents )
HopRewriteUtils.replaceChildReference(p, bop, inputGen);
hi = inputGen;
- LOG.debug("Applied fuseDatagenAndMinusOperation (line "+bop.getBeginLine()+").");
+ LOG.debug("Applied fuseDatagenAndMinusOperation (line "+bop.getBeginLine()+").");
}
}
}
@@ -553,7 +553,7 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
private Hop canonicalizeMatrixMultScalarAdd( Hop hi )
throws HopsException
{
- //pattern: binary operation (+ or -) of matrix mult and scalar
+ //pattern: binary operation (+ or -) of matrix mult and scalar
if( hi instanceof BinaryOp )
{
BinaryOp bop = (BinaryOp)hi;
@@ -1641,11 +1641,11 @@ public class RewriteAlgebraicSimplificationStatic extends HopRewriteRule
HopRewriteUtils.createTranspose(hi.getInput().get(1)) ) : //create v via t(v')
hi.getInput().get(0); //get v directly
Hop seq = isPatternB ?
- hi.getInput().get(0) : hi.getInput().get(1).getInput().get(0);
+ hi.getInput().get(0) : hi.getInput().get(1).getInput().get(0);
String direction = HopRewriteUtils.isBasic1NSequence(hi.getInput().get(0)) ? "rows" : "cols";
//setup input parameter hops
- HashMap<String,Hop> inputargs = new HashMap<String,Hop>();
+ HashMap<String,Hop> inputargs = new HashMap<>();
inputargs.put("target", trgt);
inputargs.put("max", HopRewriteUtils.getBasic1NSequenceMax(seq));
inputargs.put("dir", new LiteralOp(direction));
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/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 5379dfe..f8d812a 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteCommonSubexpressionElimination.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteCommonSubexpressionElimination.java
@@ -56,8 +56,8 @@ public class RewriteCommonSubexpressionElimination extends HopRewriteRule
if( roots == null )
return null;
- HashMap<String, Hop> dataops = new HashMap<String, Hop>();
- HashMap<String, Hop> literalops = new HashMap<String, Hop>(); //key: <VALUETYPE>_<LITERAL>
+ HashMap<String, Hop> dataops = new HashMap<>();
+ HashMap<String, Hop> literalops = new HashMap<>(); //key: <VALUETYPE>_<LITERAL>
for (Hop h : roots)
{
int cseMerged = 0;
@@ -81,8 +81,8 @@ public class RewriteCommonSubexpressionElimination extends HopRewriteRule
if( root == null )
return null;
- HashMap<String, Hop> dataops = new HashMap<String, Hop>();
- HashMap<String, Hop> literalops = new HashMap<String, Hop>(); //key: <VALUETYPE>_<LITERAL>
+ HashMap<String, Hop> dataops = new HashMap<>();
+ HashMap<String, Hop> literalops = new HashMap<>(); //key: <VALUETYPE>_<LITERAL>
int cseMerged = 0;
if( _mergeLeafs ) {
cseMerged += rule_CommonSubexpressionElimination_MergeLeafs(root, dataops, literalops);
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/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 a0867e2..92b91e0 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteConstantFolding.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteConstantFolding.java
@@ -188,7 +188,7 @@ public class RewriteConstantFolding extends HopRewriteRule
DataOp tmpWrite = new DataOp(TMP_VARNAME, bop.getDataType(), bop.getValueType(), bop, DataOpTypes.TRANSIENTWRITE, TMP_VARNAME);
//generate runtime instruction
- Dag<Lop> dag = new Dag<Lop>();
+ Dag<Lop> dag = new Dag<>();
Recompiler.rClearLops(tmpWrite); //prevent lops reuse
Lop lops = tmpWrite.constructLops(); //reconstruct lops
lops.addToDag( dag );
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/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 0724612..bd22522 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteIndexingVectorization.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteIndexingVectorization.java
@@ -204,7 +204,7 @@ public class RewriteIndexingVectorization extends HopRewriteRule
if( isSingleRow && isSingleCol )
{
//collect simple chains (w/o multiple consumers) of left indexing ops
- ArrayList<Hop> ihops = new ArrayList<Hop>();
+ ArrayList<Hop> ihops = new ArrayList<>();
ihops.add(ihop0);
Hop current = ihop0;
while( current.getInput().get(0) instanceof LeftIndexingOp ) {
@@ -251,7 +251,7 @@ public class RewriteIndexingVectorization extends HopRewriteRule
//new row left indexing operator (for all parents, only intermediates are guaranteed to have 1 parent)
//(note: it's important to clone the parent list before creating newLix on top of ihop0)
ArrayList<Hop> ihop0parents = (ArrayList<Hop>) ihop0.getParent().clone();
- ArrayList<Integer> ihop0parentsPos = new ArrayList<Integer>();
+ ArrayList<Integer> ihop0parentsPos = new ArrayList<>();
for( Hop parent : ihop0parents ) {
int posp = HopRewriteUtils.getChildReferencePos(parent, ihop0);
HopRewriteUtils.removeChildReferenceByPos(parent, ihop0, posp); //input data
@@ -283,7 +283,7 @@ public class RewriteIndexingVectorization extends HopRewriteRule
{
//collect simple chains (w/o multiple consumers) of left indexing ops
- ArrayList<Hop> ihops = new ArrayList<Hop>();
+ ArrayList<Hop> ihops = new ArrayList<>();
ihops.add(ihop0);
Hop current = ihop0;
while( current.getInput().get(0) instanceof LeftIndexingOp ) {
@@ -330,7 +330,7 @@ public class RewriteIndexingVectorization extends HopRewriteRule
//new row left indexing operator (for all parents, only intermediates are guaranteed to have 1 parent)
//(note: it's important to clone the parent list before creating newLix on top of ihop0)
ArrayList<Hop> ihop0parents = (ArrayList<Hop>) ihop0.getParent().clone();
- ArrayList<Integer> ihop0parentsPos = new ArrayList<Integer>();
+ ArrayList<Integer> ihop0parentsPos = new ArrayList<>();
for( Hop parent : ihop0parents ) {
int posp = HopRewriteUtils.getChildReferencePos(parent, ihop0);
HopRewriteUtils.removeChildReferenceByPos(parent, ihop0, posp); //input data
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/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 876b162..f838952 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteInjectSparkLoopCheckpointing.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteInjectSparkLoopCheckpointing.java
@@ -76,7 +76,7 @@ public class RewriteInjectSparkLoopCheckpointing extends StatementBlockRewriteRu
&& (_checkCtx ? !status.isInParforContext() : true) )
{
//step 1: determine checkpointing candidates
- ArrayList<String> candidates = new ArrayList<String>();
+ ArrayList<String> candidates = new ArrayList<>();
VariableSet read = sb.variablesRead();
VariableSet updated = sb.variablesUpdated();
@@ -90,7 +90,7 @@ public class RewriteInjectSparkLoopCheckpointing extends StatementBlockRewriteRu
StatementBlock sb0 = new StatementBlock();
sb0.setDMLProg(sb.getDMLProg());
sb0.setParseInfo(sb);
- ArrayList<Hop> hops = new ArrayList<Hop>();
+ ArrayList<Hop> hops = new ArrayList<>();
VariableSet livein = new VariableSet();
VariableSet liveout = new VariableSet();
for( String var : candidates )
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/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 ce94ee1..deb7fba 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteMarkLoopVariablesUpdateInPlace.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteMarkLoopVariablesUpdateInPlace.java
@@ -61,7 +61,7 @@ public class RewriteMarkLoopVariablesUpdateInPlace extends StatementBlockRewrite
if( sb instanceof WhileStatementBlock || sb instanceof ForStatementBlock ) //incl parfor
{
- ArrayList<String> candidates = new ArrayList<String>();
+ ArrayList<String> candidates = new ArrayList<>();
VariableSet updated = sb.variablesUpdated();
VariableSet liveout = sb.liveOut();
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/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 396dafc..090018b 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteMatrixMultChainOptimization.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteMatrixMultChainOptimization.java
@@ -125,8 +125,8 @@ public class RewriteMatrixMultChainOptimization extends HopRewriteRule
+ ", " + hop.getHopID() + ", " + hop.getName() + ")");
}
- ArrayList<Hop> mmChain = new ArrayList<Hop>();
- ArrayList<Hop> mmOperators = new ArrayList<Hop>();
+ ArrayList<Hop> mmChain = new ArrayList<>();
+ ArrayList<Hop> mmOperators = new ArrayList<>();
ArrayList<Hop> tempList;
// Step 1: Identify the chain (mmChain) & clear all links among the Hops
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/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 9cba102..e1c2630 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteMergeBlockSequence.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteMergeBlockSequence.java
@@ -86,7 +86,7 @@ public class RewriteMergeBlockSequence extends StatementBlockRewriteRule
//rewire transient write and transient read
Hop tread = treads.get(root.getName());
Hop in = root.getInput().get(0);
- for( Hop parent : new ArrayList<Hop>(tread.getParent()) )
+ for( Hop parent : new ArrayList<>(tread.getParent()) )
HopRewriteUtils.replaceChildReference(parent, tread, in);
HopRewriteUtils.removeAllChildReferences(root);
//add transient write if necessary
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/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 011eecd..34743bb 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemovePersistentReadWrite.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemovePersistentReadWrite.java
@@ -59,15 +59,15 @@ public class RewriteRemovePersistentReadWrite extends HopRewriteRule
public RewriteRemovePersistentReadWrite( String[] in, String[] out, LocalVariableMap vars )
{
//store input and output names
- _inputs = new HashSet<String>();
+ _inputs = new HashSet<>();
for( String var : in )
_inputs.add( var );
- _outputs = new HashSet<String>();
+ _outputs = new HashSet<>();
for( String var : out )
_outputs.add( var );
//store input meta data
- _inputsMeta = new HashMap<String, MetaData>();
+ _inputsMeta = new HashMap<>();
if( vars != null ) {
for( String varname : in ) {
Data dat = vars.get(varname);
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/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 d3489f4..c53d59d 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveReadAfterWrite.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveReadAfterWrite.java
@@ -50,8 +50,8 @@ public class RewriteRemoveReadAfterWrite extends HopRewriteRule
return null;
//collect all persistent reads and writes
- HashMap<String,Hop> reads = new HashMap<String,Hop>();
- HashMap<String,Hop> writes = new HashMap<String,Hop>();
+ HashMap<String,Hop> reads = new HashMap<>();
+ HashMap<String,Hop> writes = new HashMap<>();
for( Hop h : roots )
collectPersistentReadWriteOps( h, writes, reads );
http://git-wip-us.apache.org/repos/asf/systemml/blob/40dd894e/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 6ada2d2..52aa7a5 100644
--- a/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveUnnecessaryBranches.java
+++ b/src/main/java/org/apache/sysml/hops/rewrite/RewriteRemoveUnnecessaryBranches.java
@@ -41,7 +41,7 @@ public class RewriteRemoveUnnecessaryBranches extends StatementBlockRewriteRule
public List<StatementBlock> rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus state)
throws HopsException
{
- ArrayList<StatementBlock> ret = new ArrayList<StatementBlock>();
+ ArrayList<StatementBlock> ret = new ArrayList<>();
if( sb instanceof IfStatementBlock )
{