equal
deleted
inserted
replaced
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()); |