Beispiel #1
0
        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());
        }
Beispiel #2
0
        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];
            }
        }