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

Split Split Close
Expand all
Collapse all
          --- old/hotspot/src/share/vm/opto/chaitin.cpp
          +++ new/hotspot/src/share/vm/opto/chaitin.cpp
↓ open down ↓ 567 lines elided ↑ open up ↑
 568  568      spills = Select();
 569  569    }
 570  570  
 571  571    // Count number of Simplify-Select trips per coloring success.
 572  572    _allocator_attempts += _trip_cnt + 1;
 573  573    _allocator_successes += 1;
 574  574  
 575  575    // Peephole remove copies
 576  576    post_allocate_copy_removal();
 577  577  
      578 +  // Merge multidefs if multiple defs representing the same value are used in a single block.
      579 +  merge_multidefs();
      580 +
 578  581  #ifdef ASSERT
 579  582    // Veify the graph after RA.
 580  583    verify(&live_arena);
 581  584  #endif
 582  585  
 583  586    // max_reg is past the largest *register* used.
 584  587    // Convert that to a frame_slot number.
 585  588    if (_max_reg <= _matcher._new_SP) {
 586  589      _framesize = C->out_preserve_stack_slots();
 587  590    }
↓ open down ↓ 1760 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX