1.1 --- a/src/share/vm/opto/chaitin.cpp Fri Aug 24 16:23:59 2012 -0700 1.2 +++ b/src/share/vm/opto/chaitin.cpp Mon Aug 27 09:46:38 2012 -0700 1.3 @@ -222,6 +222,7 @@ 1.4 _alternate = 0; 1.5 _matcher._allocation_started = true; 1.6 1.7 + ResourceArea split_arena; // Arena for Split local resources 1.8 ResourceArea live_arena; // Arena for liveness & IFG info 1.9 ResourceMark rm(&live_arena); 1.10 1.11 @@ -324,7 +325,7 @@ 1.12 // Bail out if unique gets too large (ie - unique > MaxNodeLimit) 1.13 C->check_node_count(10*must_spill, "out of nodes before split"); 1.14 if (C->failing()) return; 1.15 - _maxlrg = Split( _maxlrg ); // Split spilling LRG everywhere 1.16 + _maxlrg = Split(_maxlrg, &split_arena); // Split spilling LRG everywhere 1.17 // Bail out if unique gets too large (ie - unique > MaxNodeLimit - 2*NodeLimitFudgeFactor) 1.18 // or we failed to split 1.19 C->check_node_count(2*NodeLimitFudgeFactor, "out of nodes after physical split"); 1.20 @@ -390,7 +391,7 @@ 1.21 } 1.22 1.23 if( !_maxlrg ) return; 1.24 - _maxlrg = Split( _maxlrg ); // Split spilling LRG everywhere 1.25 + _maxlrg = Split(_maxlrg, &split_arena); // Split spilling LRG everywhere 1.26 // Bail out if unique gets too large (ie - unique > MaxNodeLimit - 2*NodeLimitFudgeFactor) 1.27 C->check_node_count(2*NodeLimitFudgeFactor, "out of nodes after split"); 1.28 if (C->failing()) return;