src/share/vm/opto/chaitin.cpp

changeset 4019
a1c7f6472621
parent 4007
f7cd53cedd78
child 4115
e626685e9f6c
     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;

mercurial