X-Git-Url: http://plrg.eecs.uci.edu/git/?p=IRC.git;a=blobdiff_plain;f=Robust%2Fsrc%2FAnalysis%2FLoops%2FUseDef.java;h=b58c1a4ce81153c29e0c41a592a74389384dc55a;hp=50d44f4dec17076d627550f36d82ab44d9187e9f;hb=b124b7bf09a5eed6e272119acba9cfc5a1374b60;hpb=26ad8ed764373b80aa4d0d5b106edf4c45b8f8eb diff --git a/Robust/src/Analysis/Loops/UseDef.java b/Robust/src/Analysis/Loops/UseDef.java index 50d44f4d..b58c1a4c 100644 --- a/Robust/src/Analysis/Loops/UseDef.java +++ b/Robust/src/Analysis/Loops/UseDef.java @@ -7,7 +7,7 @@ import java.util.Set; import java.util.Iterator; import Analysis.Liveness; -public class UseDef{ +public class UseDef { Hashtable> defs; Hashtable> uses; @@ -39,7 +39,7 @@ public class UseDef{ public void analyze(FlatMethod fm) { Hashtable> tmp=new Hashtable>(); HashSet toanalyze=new HashSet(); - Hashtable> livemap=Liveness.computeLiveTemps(fm); + Hashtable> livemap=Liveness.computeLiveTemps(fm,-1); toanalyze.addAll(fm.getNodeSet()); while(!toanalyze.isEmpty()) { FlatNode fn=toanalyze.iterator().next(); @@ -48,57 +48,57 @@ public class UseDef{ toanalyze.remove(fn); HashSet s=new HashSet(); Set liveset=livemap.get(fn); - for(int i=0;i prevs=tmp.get(prev); - if (prevs!=null) { - nexttfp: - for(Iterator tfit=prevs.iterator();tfit.hasNext();) { - TempFlatPair tfp=tfit.next(); - if (!liveset.contains(tfp.t)) - continue; - for(int j=0;j prevs=tmp.get(prev); + if (prevs!=null) { +nexttfp: + for(Iterator tfit=prevs.iterator(); tfit.hasNext(); ) { + TempFlatPair tfp=tfit.next(); + if (!liveset.contains(tfp.t)) + continue; + for(int j=0; j fset=fm.getNodeSet(); defs=new Hashtable>(); uses=new Hashtable>(); - for(Iterator fnit=fset.iterator();fnit.hasNext();) { + for(Iterator fnit=fset.iterator(); fnit.hasNext(); ) { FlatNode fn=fnit.next(); TempDescriptor[] fnreads=fn.readsTemps(); Set tfpset=tmp.get(fn); - - for(int i=0;i tfpit=tfpset.iterator();tfpit.hasNext();) { - TempFlatPair tfp=tfpit.next(); - if (tfp.t==readt) { - //have use - if (!uses.containsKey(tfp)) - uses.put(tfp,new HashSet()); - uses.get(tfp).add(fn); - TempFlatPair readtfp=new TempFlatPair(readt,fn); - if (!defs.containsKey(readtfp)) - defs.put(readtfp,new HashSet()); - defs.get(readtfp).add(tfp.f); - } - } + + for(int i=0; i tfpit=tfpset.iterator(); tfpit.hasNext(); ) { + TempFlatPair tfp=tfpit.next(); + if (tfp.t==readt) { + //have use + if (!uses.containsKey(tfp)) + uses.put(tfp,new HashSet()); + uses.get(tfp).add(fn); + TempFlatPair readtfp=new TempFlatPair(readt,fn); + if (!defs.containsKey(readtfp)) + defs.put(readtfp,new HashSet()); + defs.get(readtfp).add(tfp.f); + } + } } } }