コード例 #1
0
ファイル: PE.cs プロジェクト: PlumpMath/cilpe-1
        static void Evaluate()
        {
            WhiteList whiteList = new WhiteList();

            whiteList.AddFromXml("wlist.xml");

            if (showProgress)
            {
                Console.WriteLine("White list reading - OK");
            }

            Assembly       assembly  = Assembly.LoadFrom(sourceAssemblyName);
            AssemblyHolder srcHolder = new AssemblyHolder(assembly);

            if (showProgress)
            {
                Console.WriteLine("Source assembly reading - OK");
            }

            if (showSourceCFG)
            {
                Console.WriteLine("\nSource CFG:\n----------\n");
                Console.Write(srcHolder);
            }

            markTime();
            AnnotatedAssemblyHolder btaHolder = new AnnotatedAssemblyHolder(srcHolder, whiteList);

            btaTime = getSpan();

            if (showProgress)
            {
                Console.WriteLine("Assembly annotation - OK");
            }

            if (showAnnotatedCFG)
            {
                Console.WriteLine("\nAnnotated CFG:\n-------------\n");
                Console.Write(btaHolder.ToString("CSharp", ReflectionFormatter.formatter, new string[] { Annotation.BTTypeOption, Annotation.MethodBTTypeOption }));
            }

            markTime();
            ResidualAssemblyHolder resHolder = new ResidualAssemblyHolder(btaHolder);

            specTime = getSpan();

            if (showProgress)
            {
                Console.WriteLine("Assembly specialization - OK");
            }

            if (showResidualCFG)
            {
                Console.WriteLine("\nResidual CFG:\n-------------\n");
                Console.Write(resHolder.ToString("CSharp", ReflectionFormatter.formatter));
            }

            if (enablePostprocessing)
            {
                markTime();
                resHolder.Optimize();
                pprocTime = getSpan();

                if (showProgress)
                {
                    Console.WriteLine("Assembly postprocessing - OK");
                }

                if (showPostprocessedCFG)
                {
                    Console.WriteLine("\nPostprocessed CFG:\n-----------------\n");
                    Console.Write(resHolder.ToString("CSharp", ReflectionFormatter.formatter));
                }
            }

            Exporter.Export(resHolder, targetAssemblyName);

            if (showProgress)
            {
                Console.WriteLine("Assembly export - OK");
            }

            if (enableClock)
            {
                Console.WriteLine("Timings:");
                Console.WriteLine("    BTA             - " + btaTime);
                Console.WriteLine("    Specializer     - " + specTime);

                if (enablePostprocessing)
                {
                    Console.WriteLine("    Postprocessing  - " + pprocTime);
                }
            }
        }
コード例 #2
0
ファイル: PE.cs プロジェクト: DragonXYZ/cilpe
        static void Evaluate()
        {
            WhiteList whiteList = new WhiteList();
            whiteList.AddFromXml("wlist.xml");

            if (showProgress)
                Console.WriteLine("White list reading - OK");

            Assembly assembly = Assembly.LoadFrom(sourceAssemblyName);
            AssemblyHolder srcHolder = new AssemblyHolder(assembly);

            if (showProgress)
                Console.WriteLine("Source assembly reading - OK");

            if (showSourceCFG)
            {
                Console.WriteLine("\nSource CFG:\n----------\n");
                Console.Write(srcHolder);
            }

            markTime();
            AnnotatedAssemblyHolder btaHolder = new AnnotatedAssemblyHolder(srcHolder, whiteList);
            btaTime = getSpan();

            if (showProgress)
                Console.WriteLine("Assembly annotation - OK");

            if (showAnnotatedCFG)
            {
                Console.WriteLine("\nAnnotated CFG:\n-------------\n");
                Console.Write(btaHolder.ToString("CSharp",ReflectionFormatter.formatter,new string[] { Annotation.BTTypeOption, Annotation.MethodBTTypeOption }));
            }

            markTime();
            ResidualAssemblyHolder resHolder = new ResidualAssemblyHolder(btaHolder);
            specTime = getSpan();

            if (showProgress)
                Console.WriteLine("Assembly specialization - OK");

            if (showResidualCFG)
            {
                Console.WriteLine("\nResidual CFG:\n-------------\n");
                Console.Write(resHolder.ToString("CSharp",ReflectionFormatter.formatter));
            }

            if (enablePostprocessing)
            {
                markTime();
                resHolder.Optimize();
                pprocTime = getSpan();

                if (showProgress)
                    Console.WriteLine("Assembly postprocessing - OK");

                if (showPostprocessedCFG)
                {
                    Console.WriteLine("\nPostprocessed CFG:\n-----------------\n");
                    Console.Write(resHolder.ToString("CSharp",ReflectionFormatter.formatter));
                }
            }

            Exporter.Export(resHolder, targetAssemblyName);

            if (showProgress)
                Console.WriteLine("Assembly export - OK");

            if (enableClock)
            {
                Console.WriteLine("Timings:");
                Console.WriteLine("    BTA             - " + btaTime);
                Console.WriteLine("    Specializer     - " + specTime);

                if (enablePostprocessing)
                    Console.WriteLine("    Postprocessing  - " + pprocTime);
            }
        }