From dfcf11cb8d7f28acad505c2785831424c38554b8 Mon Sep 17 00:00:00 2001 From: bd-912 Date: Sat, 27 Apr 2024 21:31:11 -0600 Subject: LIRVisitor Correct Liveness Analysis! --- vaporize/LIRVisitor.java | 78 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 52 insertions(+), 26 deletions(-) (limited to 'vaporize/LIRVisitor.java') diff --git a/vaporize/LIRVisitor.java b/vaporize/LIRVisitor.java index da6abb6..821573c 100644 --- a/vaporize/LIRVisitor.java +++ b/vaporize/LIRVisitor.java @@ -45,14 +45,39 @@ public class LIRVisitor extends VInstr.VisitorPR= stop; --i) { + this.curr = cfg.getNode(new Integer(i)); + for (CFGNode source : this.curr.getSources()) { + for (String var : this.curr.getLiveness()) { + if (!source.getDefinitions().contains(var)) { + // MinimalLogger.info(String.format("%s: %s added to liveness of %s.", + // this.curr, + // var, + // source)); + source.liveness.add(var); + } else { + // MinimalLogger.info(String.format("%s: %s was defined in %s.", + // this.curr, + // var, + // source)); + } + } + } + } + MinimalLogger.info(String.format("Spitting out reaching/liveness...")); for (CFGNode n : cfg.getNodes()) - MinimalLogger.info(String.format("%s ::: %s ::: %s", + MinimalLogger.info(String.format("%s ::: %s ::: %s ::: %s", n.toString(), + n.getDefinitions(), n.getReaching(), n.getLiveness())); @@ -96,11 +121,11 @@ public class LIRVisitor extends VInstr.VisitorPR