< prev index next >

hotspot/src/share/vm/opto/chaitin.cpp

Print this page
rev 7082 : 8068881: SIGBUS in C2 compiled method weblogic.wsee.jaxws.framework.jaxrpc.EnvironmentFactory$SimulatedWsdlDefinitions.<init>
Summary: Use MachMerge to hook together defs of the same multidef value in a block
Reviewed-by: kvn, vlivanov


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



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




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


< prev index next >