1.1 --- a/src/share/vm/opto/memnode.cpp Tue Jan 22 11:31:25 2013 -0800 1.2 +++ b/src/share/vm/opto/memnode.cpp Tue Jan 22 15:34:16 2013 -0800 1.3 @@ -2797,6 +2797,26 @@ 1.4 } 1.5 1.6 //============================================================================= 1.7 +//------------------------------match_edge------------------------------------- 1.8 +// Do not match memory edge 1.9 +uint EncodeISOArrayNode::match_edge(uint idx) const { 1.10 + return idx == 2 || idx == 3; // EncodeISOArray src (Binary dst len) 1.11 +} 1.12 + 1.13 +//------------------------------Ideal------------------------------------------ 1.14 +// Return a node which is more "ideal" than the current node. Strip out 1.15 +// control copies 1.16 +Node *EncodeISOArrayNode::Ideal(PhaseGVN *phase, bool can_reshape) { 1.17 + return remove_dead_region(phase, can_reshape) ? this : NULL; 1.18 +} 1.19 + 1.20 +//------------------------------Value------------------------------------------ 1.21 +const Type *EncodeISOArrayNode::Value(PhaseTransform *phase) const { 1.22 + if (in(0) && phase->type(in(0)) == Type::TOP) return Type::TOP; 1.23 + return bottom_type(); 1.24 +} 1.25 + 1.26 +//============================================================================= 1.27 MemBarNode::MemBarNode(Compile* C, int alias_idx, Node* precedent) 1.28 : MultiNode(TypeFunc::Parms + (precedent == NULL? 0: 1)), 1.29 _adr_type(C->get_adr_type(alias_idx))