equal
deleted
inserted
replaced
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. |