1.1 --- a/src/share/vm/opto/memnode.cpp Thu May 29 12:04:14 2008 -0700 1.2 +++ b/src/share/vm/opto/memnode.cpp Thu May 29 16:22:09 2008 -0700 1.3 @@ -156,7 +156,7 @@ 1.4 phase->C->must_alias(adr_check, alias_idx ); 1.5 // Sometimes dead array references collapse to a[-1], a[-2], or a[-3] 1.6 if( !consistent && adr_check != NULL && !adr_check->empty() && 1.7 - tp->isa_aryptr() && tp->offset() == Type::OffsetBot && 1.8 + tp->isa_aryptr() && tp->offset() == Type::OffsetBot && 1.9 adr_check->isa_aryptr() && adr_check->offset() != Type::OffsetBot && 1.10 ( adr_check->offset() == arrayOopDesc::length_offset_in_bytes() || 1.11 adr_check->offset() == oopDesc::klass_offset_in_bytes() || 1.12 @@ -2394,6 +2394,13 @@ 1.13 return remove_dead_region(phase, can_reshape) ? this : NULL; 1.14 } 1.15 1.16 +//------------------------------Ideal------------------------------------------ 1.17 +// Return a node which is more "ideal" than the current node. Strip out 1.18 +// control copies 1.19 +Node *AryEqNode::Ideal(PhaseGVN *phase, bool can_reshape){ 1.20 + return remove_dead_region(phase, can_reshape) ? this : NULL; 1.21 +} 1.22 + 1.23 1.24 //============================================================================= 1.25 MemBarNode::MemBarNode(Compile* C, int alias_idx, Node* precedent)