Beispiel #1
0
        public void LoopDominators()
        {
            var info = new DominatorInfo(LoopGraph.Nodes["1"]);

            Assert.Equal(LoopGraph.Nodes["1"], info.GetImmediateDominator(LoopGraph.Nodes["1"]));
            Assert.Equal(LoopGraph.Nodes["1"], info.GetImmediateDominator(LoopGraph.Nodes["2"]));
            Assert.Equal(LoopGraph.Nodes["2"], info.GetImmediateDominator(LoopGraph.Nodes["3"]));
            Assert.Equal(LoopGraph.Nodes["2"], info.GetImmediateDominator(LoopGraph.Nodes["4"]));
        }
Beispiel #2
0
        public void IfStatementDominators()
        {
            var cfg = IfStatementGraph;

            var info = new DominatorInfo(cfg.Nodes["1"]);

            Assert.Equal(cfg.Nodes["1"], info.GetImmediateDominator(cfg.Nodes["1"]));
            Assert.Equal(cfg.Nodes["1"], info.GetImmediateDominator(cfg.Nodes["2"]));
            Assert.Equal(cfg.Nodes["1"], info.GetImmediateDominator(cfg.Nodes["3"]));
            Assert.Equal(cfg.Nodes["1"], info.GetImmediateDominator(cfg.Nodes["4"]));
        }