Beispiel #1
0
 private static string snp(StageRunsTimes sT, int netT)
 {
     if (netT != -1 && sT.slicerT != -1 && curTimes.boogieT > 0)
     {
         return(((100 * (netT)) / curTimes.boogieT).ToString());
     }
     else
     {
         return("X");
     }
 }
Beispiel #2
0
 private static string sn(StageRunsTimes sT, int netT)
 {
     if (netT != -1)
     {
         return(netT.ToString());
     }
     else
     {
         return("X");
     }
 }
Beispiel #3
0
 private static string sb(StageRunsTimes sT, int netT)
 {
     if (netT != -1 && sT.slicerT != -1)
     {
         return((netT + sT.slicerT).ToString());
     }
     else
     {
         return("X");
     }
 }
Beispiel #4
0
        private static void printStatsIf(StageRunsTimes sT, string v)
        {
            Console.WriteLine("Stage:{0} - {1}", v, procName);
            Console.WriteLine("Out   {0,-4} {1,-4} {2,-4} {3,-4} {4,-4}", "net", "orig", "fw", "fwO", "mrs");
            Console.WriteLine("NetT  {0,4} {1,4} {2,4} {3,4} {4,4}", sn(sT, sT.netT), sn(sT, sT.origT), sn(sT, sT.fwT), sn(sT, sT.fwOrigT), sn(sT, sT.mrsT));
            Console.WriteLine("TotT  {0,4} {1,4} {2,4} {3,4} {4,4}", sb(sT, sT.netT), sb(sT, sT.origT), sb(sT, sT.fwT), sb(sT, sT.fwOrigT), sb(sT, sT.mrsT));
            Console.WriteLine("delT  {0,4} {1,4} {2,4} {3,4} {4,4}", sp(sT, sT.netT), sp(sT, sT.origT), sp(sT, sT.fwT), sp(sT, sT.fwOrigT), sp(sT, sT.mrsT));
            Console.WriteLine("delN  {0,4} {1,4} {2,4} {3,4} {4,4}", snp(sT, sT.netT), snp(sT, sT.origT), snp(sT, sT.fwT), snp(sT, sT.fwOrigT), snp(sT, sT.mrsT));

            if (v == @"build")
            {
                sss.Add(String.Format("        & {0,-50} & {1,3} & {2,3} & {3,3} & {4,3}\\%\\\\", procName, curTimes.boogieT, sT.slicerT, sT.netT, sp(sT, sT.netT)));
            }
        }
Beispiel #5
0
        private static void parseZ3Runs()
        {
//            Console.WriteLine("   Parsing Z3 run");
            try
            {
                var mm = parseTo(@"Running Z3 on(.*)\.smt2", @"Run ended");
                if (mm == null)
                {
                    throw new EndException();
                }
                var m1 = parseTo(@"unsat", new [] { @"Run ended", @"unknown", @"Process.*timed out" });
                //                var unknown = false;
                var            z3fn  = mm.Groups[1].ToString();
                StageRunsTimes stage = null;
                var            orig  = false;
                if (z3fn.EndsWith(@".orig"))
                {
                    z3fn = z3fn.Substring(0, z3fn.Length - 5);
                    orig = true;
                }
                var fw = false;
                if (z3fn.EndsWith(@".fw"))
                {
                    z3fn = z3fn.Substring(0, z3fn.Length - 3);
                    fw   = true;
                }
                var mrs = false;
                if (z3fn.EndsWith(@".mrs"))
                {
                    z3fn = z3fn.Substring(0, z3fn.Length - 4);
                    mrs  = true;
                }
                var slicerTime = -1;
                var s          = "";
                if (z3fn.EndsWith(@".start"))
                {
                    s          = "start";
                    slicerTime = curTimes.slicerTimes.preT.slicerT;
                    stage      = curTimes.slicerTimes.startT;
                }
                else if (z3fn.EndsWith(@".start.1"))
                {
                    s          = "pre";
                    slicerTime = curTimes.slicerTimes.preT.slicerT;
                    stage      = curTimes.slicerTimes.preT;
                }
                else if (z3fn.EndsWith(@".build"))
                {
                    slicerTime = curTimes.slicerTimes.buildT.slicerT;
                    s          = "build";
                    stage      = curTimes.slicerTimes.buildT;
                }
                else if (z3fn.EndsWith(@".round_1_MR"))
                {
                    slicerTime = curTimes.slicerTimes.mapsT.slicerT;
                    s          = "maps";
                    stage      = curTimes.slicerTimes.mapsT;
                }
                else if (z3fn.EndsWith(@".end"))
                {
                    s          = "end";
                    slicerTime = curTimes.slicerTimes.endT.slicerT;
                    stage      = curTimes.slicerTimes.endT;
                }
                else if (z3fn.EndsWith(@".boogie"))
                {
                    s = "Boogie";
                }
                else
                {
                    s = z3fn;
                }
                if (mrs)
                {
                    s += ".mrs";
                }
                if (fw)
                {
                    s += ".fw";
                }
                if (orig)
                {
                    s += ".orig";
                }


                if (m1 == null)
                {
                    if (endMatch != null && endMatch.Groups[1].ToString() == @"unknown")
                    {
                        Console.WriteLine("   Z3 unkown {0,-60}:", s);
                        goto z3end;
                    }
                }
                var m2 = parseTo(@".*\:total\-time\s+(\d+)\.(\d+)", @"Run ended");
                if (m2 == null)
                {
                    throw new EndException();
                }
                var z3t = Int32.Parse(m2.Groups[1].ToString());
//                Debug.Assert(stage != null);
                if (stage != null)
                {
                    if (fw && orig)
                    {
                        stage.fwOrigT = z3t;
                    }
                    else if (mrs)
                    {
                        stage.mrsT = z3t;
                    }
                    else if (fw)
                    {
                        stage.fwT = z3t;
                    }
                    else if (orig)
                    {
                        stage.origT = z3t;
                    }
                    else
                    {
                        stage.netT = z3t;
                    }
                }
                //                Console.WriteLine("   Z3: {0}", s);
                Console.WriteLine("   Z3 time {0,-60}:{1,3}s", s, z3t);
            }
            catch (EndException e)
            {
                Console.WriteLine("   Error in parsing Z3", e);
            }
z3end:
            parseTo(@"Running Z3 done");
        }