src/hotspot/share/opto/library_call.cpp
changeset 49796 6fa770f9f8ab
parent 48595 5d699d81c10c
child 49798 4bb2a92c13ea
equal deleted inserted replaced
49074:a487515924b7 49796:6fa770f9f8ab
  2576     if (p == NULL) {
  2576     if (p == NULL) {
  2577       // To be valid, unsafe loads may depend on other conditions than
  2577       // To be valid, unsafe loads may depend on other conditions than
  2578       // the one that guards them: pin the Load node
  2578       // the one that guards them: pin the Load node
  2579       LoadNode::ControlDependency dep = LoadNode::Pinned;
  2579       LoadNode::ControlDependency dep = LoadNode::Pinned;
  2580       Node* ctrl = control();
  2580       Node* ctrl = control();
  2581       if (adr_type->isa_instptr()) {
  2581       // non volatile loads may be able to float
       
  2582       if (!need_mem_bar && adr_type->isa_instptr()) {
  2582         assert(adr_type->meet(TypePtr::NULL_PTR) != adr_type->remove_speculative(), "should be not null");
  2583         assert(adr_type->meet(TypePtr::NULL_PTR) != adr_type->remove_speculative(), "should be not null");
  2583         intptr_t offset = Type::OffsetBot;
  2584         intptr_t offset = Type::OffsetBot;
  2584         AddPNode::Ideal_base_and_offset(adr, &_gvn, offset);
  2585         AddPNode::Ideal_base_and_offset(adr, &_gvn, offset);
  2585         if (offset >= 0) {
  2586         if (offset >= 0) {
  2586           int s = Klass::layout_helper_size_in_bytes(adr_type->isa_instptr()->klass()->layout_helper());
  2587           int s = Klass::layout_helper_size_in_bytes(adr_type->isa_instptr()->klass()->layout_helper());