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