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