src/hotspot/share/opto/macro.cpp
changeset 52224 4f2215a00ed1
parent 51826 e777e997e7c1
child 52424 e3d79743f57d
equal deleted inserted replaced
52223:d0983f073c54 52224:4f2215a00ed1
   432         return NULL;  // can't find a value on this path
   432         return NULL;  // can't find a value on this path
   433       }
   433       }
   434       if (val == mem) {
   434       if (val == mem) {
   435         values.at_put(j, mem);
   435         values.at_put(j, mem);
   436       } else if (val->is_Store()) {
   436       } else if (val->is_Store()) {
   437         values.at_put(j, val->in(MemNode::ValueIn));
   437         Node* n = val->in(MemNode::ValueIn);
       
   438         BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2();
       
   439         n = bs->step_over_gc_barrier(n);
       
   440         values.at_put(j, n);
   438       } else if(val->is_Proj() && val->in(0) == alloc) {
   441       } else if(val->is_Proj() && val->in(0) == alloc) {
   439         values.at_put(j, _igvn.zerocon(ft));
   442         values.at_put(j, _igvn.zerocon(ft));
   440       } else if (val->is_Phi()) {
   443       } else if (val->is_Phi()) {
   441         val = value_from_mem_phi(val, ft, phi_type, adr_t, alloc, value_phis, level-1);
   444         val = value_from_mem_phi(val, ft, phi_type, adr_t, alloc, value_phis, level-1);
   442         if (val == NULL) {
   445         if (val == NULL) {
   544   if (mem != NULL) {
   547   if (mem != NULL) {
   545     if (mem == start_mem || mem == alloc_mem) {
   548     if (mem == start_mem || mem == alloc_mem) {
   546       // hit a sentinel, return appropriate 0 value
   549       // hit a sentinel, return appropriate 0 value
   547       return _igvn.zerocon(ft);
   550       return _igvn.zerocon(ft);
   548     } else if (mem->is_Store()) {
   551     } else if (mem->is_Store()) {
   549       return mem->in(MemNode::ValueIn);
   552       Node* n = mem->in(MemNode::ValueIn);
       
   553       BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2();
       
   554       n = bs->step_over_gc_barrier(n);
       
   555       return n;
   550     } else if (mem->is_Phi()) {
   556     } else if (mem->is_Phi()) {
   551       // attempt to produce a Phi reflecting the values on the input paths of the Phi
   557       // attempt to produce a Phi reflecting the values on the input paths of the Phi
   552       Node_Stack value_phis(a, 8);
   558       Node_Stack value_phis(a, 8);
   553       Node * phi = value_from_mem_phi(mem, ft, ftype, adr_t, alloc, &value_phis, ValueSearchLimit);
   559       Node * phi = value_from_mem_phi(mem, ft, ftype, adr_t, alloc, &value_phis, ValueSearchLimit);
   554       if (phi != NULL) {
   560       if (phi != NULL) {