示例#1
0
        public override string ToString()
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("********************************************************************");
            sb.AppendLine("FUNCTION ID: " + ID);
            sb.AppendLine("- Global ID: " + globalID);
            sb.AppendLine("- Called from: " + calledFrom);
            sb.AppendLine("- Basic blocks total: " + BasicBlocks.Count);
            sb.AppendLine("    - Dead basic blocks: " + BasicBlocks.Count(x => x.inFakeLane));
            sb.AppendLine("- Local variables total: " + LocalVariables.Count(x => x.kind != Variable.Kind.Global));
            sb.AppendLine("    - Original input parameters: " + LocalVariables.Count(x => x.kind == Variable.Kind.Input && !x.fake));
            sb.AppendLine("    - Original output parameters: " + LocalVariables.Count(x => x.kind == Variable.Kind.Output && !x.fake));
            sb.AppendLine("    - Original variables: " + LocalVariables.Count(x => x.kind == Variable.Kind.Local && !x.fake));
            sb.AppendLine("    - Fake input parameters: " + LocalVariables.Count(x => x.kind == Variable.Kind.Input && x.fake));
            sb.AppendLine("    - Fake output parameters: " + LocalVariables.Count(x => x.kind == Variable.Kind.Output && x.fake));
            sb.AppendLine("    - Fake variables: " + LocalVariables.Count(x => x.kind == Variable.Kind.Local && x.fake));
            sb.AppendLine("********************************************************************");
            sb.AppendLine("BASIC BLOCKS:");
            foreach (BasicBlock bb in BasicBlocks)
            {
                sb.AppendLine(bb.ToString());
            }
            return(sb.ToString());
        }