src/share/vm/opto/memnode.cpp

changeset 4479
b30b3c2a0cf2
parent 4410
00af3a3a8df4
child 4657
6931f425c517
     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))

mercurial