Sriram, in the original code setLatticePost was called after transferDFState, meaning that the state we were setting was already separated by PartEdge. Now you’re setting it and then calling transferDFState, which should mean that the per-PartEdge separation no longer happens in your version, or more specifically, it happens on the dfInfoPost map, which is on the stack, rather than within the NodeState object. Won’t this cause errors?

Greg Bronevetsky
Lawrence Livermore National Lab
(925) 424-5756
bronevetsky@llnl.gov<mailto:bronevetsky@llnl.gov>
http://greg.bronevetsky.com

From: Sriram Aananthakrishnan [mailto:notifications@github.com]
Sent: Thursday, November 21, 2013 12:26 PM
To: sriram87/edg4x-rose
Cc: bronevet
Subject: Re: [edg4x-rose] Fuse state access (#3)


In projects/fuse/src/analysis/composed_analysis.C:

> @@ -375,9 +375,15 @@ void ComposedAnalysis::runAnalysis(/*NodeState* appState*/)

>          dbg << "Transferred: "<<(modified? "<font color=\"#990000\">Modified</font>": "<font color=\"#000000\">Not Modified</font>")<<endl;

>        }

>

> +      // If this is the first CFGNode within this Part, save dfInfoPost in NodeState

@bronevet<https://github.com/bronevet> you should take a look at this. I believe this was a bug. setLatticePost was being done outside the set iteration. I brought it inside the loop. If it was the first cfgnode in the iteration, the post state will be set and in the else part, we use the unionLattice to merge the new dataflow information.

—
Reply to this email directly or view it on GitHub<https://github.com/sriram87/edg4x-rose/pull/3/files#r7837361>.