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;
|