hotspot/src/share/vm/opto/gcm.cpp
changeset 2348 4e71ed4c2709
parent 2340 cb47f8209cd8
child 2875 549b4d80b29e
equal deleted inserted replaced
2343:6113864ecd70 2348:4e71ed4c2709
   436     if (VerifyAliases)  assert(load_alias_idx != Compile::AliasIdxBot, "");
   436     if (VerifyAliases)  assert(load_alias_idx != Compile::AliasIdxBot, "");
   437   }
   437   }
   438 #endif
   438 #endif
   439   assert(load_alias_idx || (load->is_Mach() && load->as_Mach()->ideal_Opcode() == Op_StrComp),
   439   assert(load_alias_idx || (load->is_Mach() && load->as_Mach()->ideal_Opcode() == Op_StrComp),
   440          "String compare is only known 'load' that does not conflict with any stores");
   440          "String compare is only known 'load' that does not conflict with any stores");
       
   441   assert(load_alias_idx || (load->is_Mach() && load->as_Mach()->ideal_Opcode() == Op_StrEquals),
       
   442          "String equals is a 'load' that does not conflict with any stores");
       
   443   assert(load_alias_idx || (load->is_Mach() && load->as_Mach()->ideal_Opcode() == Op_StrIndexOf),
       
   444          "String indexOf is a 'load' that does not conflict with any stores");
       
   445   assert(load_alias_idx || (load->is_Mach() && load->as_Mach()->ideal_Opcode() == Op_AryEq),
       
   446          "Arrays equals is a 'load' that do not conflict with any stores");
   441 
   447 
   442   if (!C->alias_type(load_alias_idx)->is_rewritable()) {
   448   if (!C->alias_type(load_alias_idx)->is_rewritable()) {
   443     // It is impossible to spoil this load by putting stores before it,
   449     // It is impossible to spoil this load by putting stores before it,
   444     // because we know that the stores will never update the value
   450     // because we know that the stores will never update the value
   445     // which 'load' must witness.
   451     // which 'load' must witness.