src/share/vm/opto/compile.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6684714.last Cdiff src/share/vm/opto/compile.cpp

src/share/vm/opto/compile.cpp

Print this page

        

*** 581,603 **** if (failing()) return; NOT_PRODUCT( verify_graph_edges(); ) // Perform escape analysis ! if (_do_escape_analysis) ! _congraph = new ConnectionGraph(this); ! if (_congraph != NULL) { ! NOT_PRODUCT( TracePhase t2("escapeAnalysis", &_t_escapeAnalysis, TimeCompiler); ) ! _congraph->compute_escape(); ! if (failing()) return; #ifndef PRODUCT if (PrintEscapeAnalysis) { _congraph->dump(); } #endif } // Now optimize Optimize(); if (failing()) return; NOT_PRODUCT( verify_graph_edges(); ) --- 581,607 ---- if (failing()) return; NOT_PRODUCT( verify_graph_edges(); ) // Perform escape analysis ! if (_do_escape_analysis && ConnectionGraph::has_candidates(this)) { ! TracePhase t2("escapeAnalysis", &_t_escapeAnalysis, true); + _congraph = new(comp_arena()) ConnectionGraph(this); + bool has_non_escaping_obj = _congraph->compute_escape(); + #ifndef PRODUCT if (PrintEscapeAnalysis) { _congraph->dump(); } #endif + if (!has_non_escaping_obj) { + _congraph = NULL; } + + if (failing()) return; + } // Now optimize Optimize(); if (failing()) return; NOT_PRODUCT( verify_graph_edges(); )
src/share/vm/opto/compile.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File