/// <summary> /// Analyzes the loop nesting structure of the control-flow graph. /// The default implementation directs the tasks to Havlak's algorithm. /// </summary> protected virtual void AnalyzeLoops() { IGraphAdapter <BasicBlock <Ti> > a = BasicBlock <Ti> .LoopAnalysisAdapter; BasicBlock <Ti>[] reachable = a.GetPreOrder(BasicBlocks, EntryCB); a.InvertRelation(a.Succs, a.Preds, reachable); a.AnalyzeLoops(reachable, EntryCB); }