コード例 #1
0
 public DependencyPTGDomain(DependencyDomain dependencies, SimplePointsToGraph ptg, RangeDomain itState, RangeDomain blockState)
 {
     Dependencies  = dependencies;
     PTG           = ptg;
     IteratorState = itState;
     BlockState    = blockState;
 }
コード例 #2
0
 public DependencyPTGDomain(DependencyDomain dependencies, SimplePointsToGraph ptg)
 {
     Dependencies  = dependencies;
     PTG           = ptg;
     IteratorState = RangeDomain.BOTTOM;             // new RangeDomain(-1);
     BlockState    = RangeDomain.BOTTOM;
 }
コード例 #3
0
        public DependencyPTGDomain()
        {
            Dependencies = new DependencyDomain();
            PTG          = new SimplePointsToGraph();

            IteratorState = RangeDomain.BOTTOM;              // new RangeDomain(-1);
            BlockState    = RangeDomain.BOTTOM;
        }
コード例 #4
0
        public bool GreaterThan(DependencyDomain right)
        {
            if (this.IsTop && !right.IsTop)
            {
                return(true);
            }
            var result = !this.LessEqual(right);

            return(result); // this.Less(right);
        }
コード例 #5
0
        public DependencyDomain Clone()
        {
            var result = new DependencyDomain();

            result.IsTop         = this.IsTop;
            result.A2_References = new MapSet <PTGNode, Traceable>(this.A2_References);

            result.A1_Escaping      = new HashSet <Traceable>(this.A1_Escaping);
            result.A2_Variables     = new MapSet <IVariable, Traceable>(this.A2_Variables);
            result.A3_Fields        = new MapSet <Location, Traceable>(this.A3_Fields);
            result.A4_Ouput         = new MapSet <IVariable, Traceable>(this.A4_Ouput);
            result.A4_Ouput_Control = new MapSet <IVariable, Traceable>(this.A4_Ouput_Control);
            result.ControlVariables = new HashSet <IVariable>(this.ControlVariables);
            return(result);
        }
コード例 #6
0
        public DependencyDomain Join(DependencyDomain right)
        {
            var result = new DependencyDomain();

            if (this.IsTop || right.IsTop)
            {
                result.IsTop = true;
            }
            else if (right.LessEqual(this))
            {
                result = this.Clone();
            }
            else if (this.LessEqual(right))
            {
                result = right.Clone();
            }
            else
            {
                result.IsTop         = this.IsTop;
                result.A2_References = new MapSet <SimplePTGNode, Traceable>(this.A2_References);

                result.A1_Escaping      = new HashSet <Traceable>(this.A1_Escaping);
                result.A2_Variables     = new MapSet <IVariable, Traceable>(this.A2_Variables);
                result.A3_Fields        = new MapSet <Location, Traceable>(this.A3_Fields);
                result.A4_Ouput         = new MapSet <IVariable, Traceable>(this.A4_Ouput);
                result.A4_Ouput_Control = new MapSet <IVariable, Traceable>(this.A4_Ouput_Control);

                result.ControlVariables = new HashSet <IVariable>(this.ControlVariables);
                //result.ControlTraceables = new HashSet<Traceable>(this.ControlTraceables);

                result.isTop = result.isTop || right.isTop;
                result.A2_References.UnionWith(right.A2_References);

                result.A1_Escaping.UnionWith(right.A1_Escaping);
                result.A2_Variables.UnionWith(right.A2_Variables);
                result.A3_Fields.UnionWith(right.A3_Fields);
                result.A4_Ouput.UnionWith(right.A4_Ouput);
                result.A4_Ouput_Control.UnionWith(right.A4_Ouput_Control);

                result.ControlVariables.UnionWith(right.ControlVariables);
                //result.ControlTraceables.UnionWith(right.ControlTraceables);
            }
            return(result);
        }
コード例 #7
0
 public DependencyPTGDomain(DependencyDomain dependencies, SimplePointsToGraph ptg)
 {
     Dependencies = dependencies;
     PTG          = ptg;
 }
コード例 #8
0
 public DependencyPTGDomain()
 {
     Dependencies = new DependencyDomain();
     PTG          = new SimplePointsToGraph();
 }