src/share/vm/opto/memnode.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 8039298 Cdiff src/share/vm/opto/memnode.cpp

src/share/vm/opto/memnode.cpp

Print this page

        

*** 306,342 **** // Note: C++ will not remove it since the call has side effect. if (t_adr->isa_oopptr()) { int alias_idx = phase->C->get_alias_index(t_adr->is_ptr()); } - #ifdef ASSERT Node* base = NULL; ! if (address->is_AddP()) base = address->in(AddPNode::Base); if (base != NULL && phase->type(base)->higher_equal(TypePtr::NULL_PTR) && !t_adr->isa_rawptr()) { // Note: raw address has TOP base and top->higher_equal(TypePtr::NULL_PTR) is true. ! Compile* C = phase->C; ! tty->cr(); ! tty->print_cr("===== NULL+offs not RAW address ====="); ! if (C->is_dead_node(this->_idx)) tty->print_cr("'this' is dead"); ! if ((ctl != NULL) && C->is_dead_node(ctl->_idx)) tty->print_cr("'ctl' is dead"); ! if (C->is_dead_node(mem->_idx)) tty->print_cr("'mem' is dead"); ! if (C->is_dead_node(address->_idx)) tty->print_cr("'address' is dead"); ! if (C->is_dead_node(base->_idx)) tty->print_cr("'base' is dead"); ! tty->cr(); ! base->dump(1); ! tty->cr(); ! this->dump(2); ! tty->print("this->adr_type(): "); adr_type()->dump(); tty->cr(); ! tty->print("phase->type(address): "); t_adr->dump(); tty->cr(); ! tty->print("phase->type(base): "); phase->type(address)->dump(); tty->cr(); ! tty->cr(); } - assert(base == NULL || t_adr->isa_rawptr() || - !phase->type(base)->higher_equal(TypePtr::NULL_PTR), "NULL+offs not RAW address?"); - #endif // Avoid independent memory operations Node* old_mem = mem; // The code which unhooks non-raw memories from complete (macro-expanded) --- 306,325 ---- // Note: C++ will not remove it since the call has side effect. if (t_adr->isa_oopptr()) { int alias_idx = phase->C->get_alias_index(t_adr->is_ptr()); } Node* base = NULL; ! if (address->is_AddP()) { base = address->in(AddPNode::Base); + } if (base != NULL && phase->type(base)->higher_equal(TypePtr::NULL_PTR) && !t_adr->isa_rawptr()) { // Note: raw address has TOP base and top->higher_equal(TypePtr::NULL_PTR) is true. ! // Skip this node optimization if its address has TOP base. ! return NodeSentinel; // caller will return NULL } // Avoid independent memory operations Node* old_mem = mem; // The code which unhooks non-raw memories from complete (macro-expanded)
src/share/vm/opto/memnode.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File