src/share/vm/opto/chaitin.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/opto

src/share/vm/opto/chaitin.cpp

Print this page




 565     verify(&live_arena, true);
 566 #endif
 567     cache_lrg_info();           // Count degree of LRGs
 568 
 569     // Simplify the InterFerence Graph by removing LRGs of low degree.
 570     // LRGs of low degree are trivially colorable.
 571     Simplify();
 572 
 573     // Select colors by re-inserting LRGs back into the IFG in reverse order.
 574     // Return whether or not something spills.
 575     spills = Select();
 576   }
 577 
 578   // Count number of Simplify-Select trips per coloring success.
 579   _allocator_attempts += _trip_cnt + 1;
 580   _allocator_successes += 1;
 581 
 582   // Peephole remove copies
 583   post_allocate_copy_removal();
 584 



 585 #ifdef ASSERT
 586   // Veify the graph after RA.
 587   verify(&live_arena);
 588 #endif
 589 
 590   // max_reg is past the largest *register* used.
 591   // Convert that to a frame_slot number.
 592   if (_max_reg <= _matcher._new_SP) {
 593     _framesize = C->out_preserve_stack_slots();
 594   }
 595   else {
 596     _framesize = _max_reg -_matcher._new_SP;
 597   }
 598   assert((int)(_matcher._new_SP+_framesize) >= (int)_matcher._out_arg_limit, "framesize must be large enough");
 599 
 600   // This frame must preserve the required fp alignment
 601   _framesize = round_to(_framesize, Matcher::stack_alignment_in_slots());
 602   assert( _framesize >= 0 && _framesize <= 1000000, "sanity check" );
 603 #ifndef PRODUCT
 604   _total_framesize += _framesize;




 565     verify(&live_arena, true);
 566 #endif
 567     cache_lrg_info();           // Count degree of LRGs
 568 
 569     // Simplify the InterFerence Graph by removing LRGs of low degree.
 570     // LRGs of low degree are trivially colorable.
 571     Simplify();
 572 
 573     // Select colors by re-inserting LRGs back into the IFG in reverse order.
 574     // Return whether or not something spills.
 575     spills = Select();
 576   }
 577 
 578   // Count number of Simplify-Select trips per coloring success.
 579   _allocator_attempts += _trip_cnt + 1;
 580   _allocator_successes += 1;
 581 
 582   // Peephole remove copies
 583   post_allocate_copy_removal();
 584 
 585   // Merge multidefs if multiple defs representing the same value are used in a single block.
 586   merge_multidefs();
 587 
 588 #ifdef ASSERT
 589   // Veify the graph after RA.
 590   verify(&live_arena);
 591 #endif
 592 
 593   // max_reg is past the largest *register* used.
 594   // Convert that to a frame_slot number.
 595   if (_max_reg <= _matcher._new_SP) {
 596     _framesize = C->out_preserve_stack_slots();
 597   }
 598   else {
 599     _framesize = _max_reg -_matcher._new_SP;
 600   }
 601   assert((int)(_matcher._new_SP+_framesize) >= (int)_matcher._out_arg_limit, "framesize must be large enough");
 602 
 603   // This frame must preserve the required fp alignment
 604   _framesize = round_to(_framesize, Matcher::stack_alignment_in_slots());
 605   assert( _framesize >= 0 && _framesize <= 1000000, "sanity check" );
 606 #ifndef PRODUCT
 607   _total_framesize += _framesize;


src/share/vm/opto/chaitin.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File