/// <summary> /// Entry point method for performing escape analysis. /// </summary> /// <param name="cfg"></param> /// <param name="method"></param> /// <param name="results"></param> /// <returns></returns> private NaiveScopeMayEscapeAnalysis DoEscapeAnalysis(ControlFlowGraph cfg, IMethodDefinition method, ScopeMethodAnalysisResult results) { Utils.WriteLine("Running escape analysis..."); var escAnalysis = new NaiveScopeMayEscapeAnalysis(cfg, method, mhost, rowType, rowSetType); results.EscapeSummary = escAnalysis.Analyze()[cfg.Exit.Id].Output; //Utils.WriteLine(results.EscapeSummary.ToString()); Utils.WriteLine("Something escaped: " + escAnalysis.InterestingRowEscaped); Utils.WriteLine("Done with escape analysis"); return(escAnalysis); }
public NaiveScopeEscapeInfoProvider(NaiveScopeMayEscapeAnalysis ans) { analysis = ans; info = analysis.PostResults; }