src/hotspot/share/opto/escape.cpp
changeset 55394 b444bbe5c45c
parent 53875 7a6fb8a48434
child 55591 9523b841b470
equal deleted inserted replaced
55393:5dcab10ebfbe 55394:b444bbe5c45c
  2344       Node* uncast_base = base->uncast();
  2344       Node* uncast_base = base->uncast();
  2345       int opcode = uncast_base->Opcode();
  2345       int opcode = uncast_base->Opcode();
  2346       assert(opcode == Op_ConP || opcode == Op_ThreadLocal ||
  2346       assert(opcode == Op_ConP || opcode == Op_ThreadLocal ||
  2347              opcode == Op_CastX2P || uncast_base->is_DecodeNarrowPtr() ||
  2347              opcode == Op_CastX2P || uncast_base->is_DecodeNarrowPtr() ||
  2348              (uncast_base->is_Mem() && (uncast_base->bottom_type()->isa_rawptr() != NULL)) ||
  2348              (uncast_base->is_Mem() && (uncast_base->bottom_type()->isa_rawptr() != NULL)) ||
  2349              (uncast_base->is_Proj() && uncast_base->in(0)->is_Allocate()) ||
  2349              (uncast_base->is_Proj() && uncast_base->in(0)->is_Allocate()), "sanity");
  2350              BarrierSet::barrier_set()->barrier_set_c2()->escape_is_barrier_node(uncast_base), "sanity");
       
  2351     }
  2350     }
  2352   }
  2351   }
  2353   return base;
  2352   return base;
  2354 }
  2353 }
  2355 
  2354 
  3083       if (!split_AddP(n, base)) continue; // wrong type from dead path
  3082       if (!split_AddP(n, base)) continue; // wrong type from dead path
  3084     } else if (n->is_Phi() ||
  3083     } else if (n->is_Phi() ||
  3085                n->is_CheckCastPP() ||
  3084                n->is_CheckCastPP() ||
  3086                n->is_EncodeP() ||
  3085                n->is_EncodeP() ||
  3087                n->is_DecodeN() ||
  3086                n->is_DecodeN() ||
  3088                BarrierSet::barrier_set()->barrier_set_c2()->escape_is_barrier_node(n) ||
       
  3089                (n->is_ConstraintCast() && n->Opcode() == Op_CastPP)) {
  3087                (n->is_ConstraintCast() && n->Opcode() == Op_CastPP)) {
  3090       if (visited.test_set(n->_idx)) {
  3088       if (visited.test_set(n->_idx)) {
  3091         assert(n->is_Phi(), "loops only through Phi's");
  3089         assert(n->is_Phi(), "loops only through Phi's");
  3092         continue;  // already processed
  3090         continue;  // already processed
  3093       }
  3091       }
  3154         alloc_worklist.append_if_missing(use);
  3152         alloc_worklist.append_if_missing(use);
  3155       } else if (use->is_Phi() ||
  3153       } else if (use->is_Phi() ||
  3156                  use->is_CheckCastPP() ||
  3154                  use->is_CheckCastPP() ||
  3157                  use->is_EncodeNarrowPtr() ||
  3155                  use->is_EncodeNarrowPtr() ||
  3158                  use->is_DecodeNarrowPtr() ||
  3156                  use->is_DecodeNarrowPtr() ||
  3159                  BarrierSet::barrier_set()->barrier_set_c2()->escape_is_barrier_node(use) ||
       
  3160                  (use->is_ConstraintCast() && use->Opcode() == Op_CastPP)) {
  3157                  (use->is_ConstraintCast() && use->Opcode() == Op_CastPP)) {
  3161         alloc_worklist.append_if_missing(use);
  3158         alloc_worklist.append_if_missing(use);
  3162 #ifdef ASSERT
  3159 #ifdef ASSERT
  3163       } else if (use->is_Mem()) {
  3160       } else if (use->is_Mem()) {
  3164         assert(use->in(MemNode::Address) != n, "EA: missing allocation reference path");
  3161         assert(use->in(MemNode::Address) != n, "EA: missing allocation reference path");