Mercurial > hg > graal-jvmci-8
diff src/share/vm/opto/compile.cpp @ 253:b0fe4deeb9fb
6726999: nsk/stress/jck12a/jck12a010 assert(n != null,"Bad immediate dominator info.")
Summary: Escape Analysis fixes.
Reviewed-by: never, rasbold
author | kvn |
---|---|
date | Mon, 28 Jul 2008 17:12:52 -0700 |
parents | 02a35ad4adf8 |
children | c3e045194476 |
line wrap: on
line diff
--- a/src/share/vm/opto/compile.cpp Fri Jul 25 16:03:40 2008 -0700 +++ b/src/share/vm/opto/compile.cpp Mon Jul 28 17:12:52 2008 -0700 @@ -585,6 +585,10 @@ // Perform escape analysis if (_do_escape_analysis && ConnectionGraph::has_candidates(this)) { TracePhase t2("escapeAnalysis", &_t_escapeAnalysis, true); + // Add ConP#NULL and ConN#NULL nodes before ConnectionGraph construction. + PhaseGVN* igvn = initial_gvn(); + Node* oop_null = igvn->zerocon(T_OBJECT); + Node* noop_null = igvn->zerocon(T_NARROWOOP); _congraph = new(comp_arena()) ConnectionGraph(this); bool has_non_escaping_obj = _congraph->compute_escape(); @@ -594,6 +598,12 @@ _congraph->dump(); } #endif + // Cleanup. + if (oop_null->outcnt() == 0) + igvn->hash_delete(oop_null); + if (noop_null->outcnt() == 0) + igvn->hash_delete(noop_null); + if (!has_non_escaping_obj) { _congraph = NULL; }