protected override ConstantPropagationDomain Flow(CFGNode node, ConstantPropagationDomain input) { var nState = input.Clone(); var visitor = new ConstantPropagationTransferVisitor(nState, this); visitor.Visit(node); UpdateResults(visitor); return(visitor.State.Clone()); }
private void UpdateResults(ConstantPropagationTransferVisitor visitor) { foreach (var key in visitor.PreStates.Keys) { preResults[key] = visitor.PreStates[key]; } foreach (var key in visitor.PostStates.Keys) { postResults[key] = visitor.PostStates[key]; } }