Ejemplo n.º 1
0
Archivo: Demos.cs Proyecto: koyre/b8
        public void SsaConstructionTest()
        {
            var root   = Parser.ParseString(Samples.SampleProgramText.ssaoptimizationSample2);
            var code   = ProgramTreeToLinear.Build(root);
            var blocks = LinearToBaseBlock.Build(code);
            var cfg    = new CFGraph(blocks);

            Console.WriteLine("###--------- Input CF Graph ---------###");
            Console.WriteLine(cfg.ToString());
            SsaConstruction ssa = new SsaConstruction(cfg);

            Console.WriteLine("###--------- Output SSA Graph ---------###");
            Console.WriteLine(ssa.SsaForm.ToString());
        }
Ejemplo n.º 2
0
Archivo: Demos.cs Proyecto: koyre/b8
        public void SsaCopyPropagationTest()
        {
            var root   = Parser.ParseString(Samples.SampleProgramText.ssaoptimizationSample3);
            var code   = ProgramTreeToLinear.Build(root);
            var blocks = LinearToBaseBlock.Build(code);
            var cfg    = new CFGraph(blocks);

            Console.WriteLine("###--------- Input CF Graph ---------###");
            Console.WriteLine(cfg.ToString());
            SsaConstruction ssa      = new SsaConstruction(cfg);
            CFGraph         ssaGraph = ssa.SsaForm;

            Console.WriteLine("###--------- Constructed SSA Graph ---------###");
            Console.WriteLine(ssaGraph.ToString());

            SsaCopyPropagation ssaCopyPropagation = new SsaCopyPropagation(ssaGraph);

            ssaCopyPropagation.Launch();
            Console.WriteLine("###--------- Output SSA Graph after copy propagation ---------###");
            Console.WriteLine(ssaCopyPropagation.OptimizedSsaGraph);
        }