--- old/src/share/vm/opto/chaitin.cpp 2014-11-06 00:05:08.454893823 +0300 +++ new/src/share/vm/opto/chaitin.cpp 2014-11-06 00:05:08.406893821 +0300 @@ -374,7 +374,6 @@ Compile::TracePhase tp("computeLive", &timers[_t_computeLive]); _live = NULL; // Mark live as being not available rm.reset_to_mark(); // Reclaim working storage - IndexSet::reset_memory(C, &live_arena); ifg.init(_lrg_map.max_lrg_id()); // Empty IFG gather_lrg_masks( false ); // Collect LRG masks live.compute(_lrg_map.max_lrg_id()); // Compute liveness @@ -392,7 +391,6 @@ // Since some live range stretched, I need to recompute live _live = NULL; rm.reset_to_mark(); // Reclaim working storage - IndexSet::reset_memory(C, &live_arena); ifg.init(_lrg_map.max_lrg_id()); gather_lrg_masks(false); live.compute(_lrg_map.max_lrg_id()); @@ -431,7 +429,6 @@ Compile::TracePhase tp("computeLive", &timers[_t_computeLive]); _live = NULL; rm.reset_to_mark(); // Reclaim working storage - IndexSet::reset_memory(C, &live_arena); ifg.init(_lrg_map.max_lrg_id()); gather_lrg_masks( true ); live.compute(_lrg_map.max_lrg_id()); @@ -469,7 +466,6 @@ Compile::TracePhase tp("computeLive", &timers[_t_computeLive]); _live = NULL; rm.reset_to_mark(); // Reclaim working storage - IndexSet::reset_memory(C, &live_arena); ifg.init(_lrg_map.max_lrg_id()); // Build a new interference graph gather_lrg_masks( true ); // Collect intersect mask live.compute(_lrg_map.max_lrg_id()); // Compute LIVE @@ -539,7 +535,6 @@ Compile::TracePhase tp("computeLive", &timers[_t_computeLive]); _live = NULL; rm.reset_to_mark(); // Reclaim working storage - IndexSet::reset_memory(C, &live_arena); ifg.init(_lrg_map.max_lrg_id()); // Create LiveRanGe array. @@ -660,8 +655,7 @@ // Done! _live = NULL; - _ifg = NULL; - C->set_indexSet_arena(NULL); // ResourceArea is at end of scope + _ifg = NULL; } void PhaseChaitin::de_ssa() {