private void FindPostDominators(ProcedureBuilder m) { ProcedureStructureBuilder graphs = new ProcedureStructureBuilder(m.Procedure); h = graphs.Build(); sw = new StringWriter(); graphs.AnalyzeGraph().Write(sw); }
protected virtual void RunTest(ProcedureBuilder pm) { ProcedureStructureBuilder g = new ProcedureStructureBuilder(pm.Procedure); g.BuildNodes(); g.DefineEdges(); proc = g.CreateProcedureStructure(); g.SetTimeStamps(); }
private void CompileTest(ProcedureBuilder pm) { ProcedureStructureBuilder g = new ProcedureStructureBuilder(pm.Procedure); Dictionary <Block, StructureNode> nodes = new Dictionary <Block, StructureNode>(); g.BuildNodes(); g.DefineEdges(); proc = g.CreateProcedureStructure(); g.SetTimeStamps(); }
protected virtual void RunTest(Procedure proc) { ProcedureStructureBuilder graphs = new ProcedureStructureBuilder(proc); graphs.BuildNodes(); graphs.DefineEdges(); ph = graphs.CreateProcedureStructure(); graphs.SetTimeStamps(); IntervalBuilder ib = new IntervalBuilder(); intervals = ib.BuildIntervals(new StructureGraphAdapter(ph.Nodes), ph.EntryNode); }
private ProcedureStructure CompileTest(Procedure proc) { ProcedureStructureBuilder g = new ProcedureStructureBuilder(proc); g.BuildNodes(); g.DefineEdges(); ProcedureStructure ps = g.CreateProcedureStructure(); g.SetTimeStamps(); DerivedSequenceBuilder gr = new DerivedSequenceBuilder(ps); return(ps); }
public void LoopFinder_Reg00013() { Program prog = RewriteProgramMsdos("Fragments/regressions/r00013.asm", Address.SegPtr(0x800, 0)); ProcedureStructureBuilder psb = new ProcedureStructureBuilder(prog.Procedures.Values[0]); proc = psb.Build(); psb.AnalyzeGraph(); proc.Dump(); var lf = new LoopFinder(proc.Ordering[23], proc.Ordering[0], proc.Ordering); var intervalNodes = proc.Nodes[23].Interval.FindIntervalNodes(0); var loopNodes = lf.FindNodesInLoop(intervalNodes); proc.Dump(); Loop loop = lf.DetermineLoopType(loopNodes); Assert.IsTrue(loop is TestlessLoop); }
private void RunTest(ProcedureBuilder m) { var psb = new ProcedureStructureBuilder(m.Procedure); proc = psb.Build(); }
private void CompileTest(ProcedureBuilder pm) { ProcedureStructureBuilder g = new ProcedureStructureBuilder(pm.Procedure); Dictionary<Block, StructureNode> nodes = new Dictionary<Block, StructureNode>(); g.BuildNodes(); g.DefineEdges(); proc = g.CreateProcedureStructure(); g.SetTimeStamps(); }
private ProcedureStructure CompileTest(Procedure proc) { ProcedureStructureBuilder g = new ProcedureStructureBuilder(proc); g.BuildNodes(); g.DefineEdges(); ProcedureStructure ps = g.CreateProcedureStructure(); g.SetTimeStamps(); DerivedSequenceBuilder gr = new DerivedSequenceBuilder(ps); return ps; }
public void BuildProcedureStructure() { var cfgs = new ProcedureStructureBuilder(proc); ProcedureStructure = cfgs.Build(); cfgs.AnalyzeGraph(); }