src/hotspot/share/opto/library_call.cpp
changeset 49356 5043644f817f
parent 49041 44122f767467
child 49449 ef5d5d343e2a
equal deleted inserted replaced
49355:30f39453f0a8 49356:5043644f817f
  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());