--- a/hotspot/src/share/vm/opto/compile.cpp Mon Nov 30 15:40:07 2015 -1000
+++ b/hotspot/src/share/vm/opto/compile.cpp Tue Dec 01 08:05:10 2015 +0100
@@ -2156,6 +2156,20 @@
// so keep only the actual candidates for optimizations.
cleanup_expensive_nodes(igvn);
+ if (!failing() && RenumberLiveNodes && live_nodes() + NodeLimitFudgeFactor < unique()) {
+ Compile::TracePhase tp("", &timers[_t_renumberLive]);
+ initial_gvn()->replace_with(&igvn);
+ for_igvn()->clear();
+ Unique_Node_List new_worklist(C->comp_arena());
+ {
+ ResourceMark rm;
+ PhaseRenumberLive prl = PhaseRenumberLive(initial_gvn(), for_igvn(), &new_worklist);
+ }
+ set_for_igvn(&new_worklist);
+ igvn = PhaseIterGVN(initial_gvn());
+ igvn.optimize();
+ }
+
// Perform escape analysis
if (_do_escape_analysis && ConnectionGraph::has_candidates(this)) {
if (has_loops()) {