< prev index next >

src/hotspot/share/opto/node.cpp

Print this page
*** 577,10 ***
--- 577,13 ---
      // Scalar replacement and macro expansion might modify the JVMState.
      // Clone it to make sure it's not shared between SafePointNodes.
      n->as_SafePoint()->clone_jvms(C);
      n->as_SafePoint()->clone_replaced_nodes();
    }
+   if (n->is_InlineTypeBase()) {
+     C->add_inline_type(n);
+   }
    return n;                     // Return the clone
  }
  
  //---------------------------setup_is_top--------------------------------------
  // Call this when changing the top node, to reassert the invariants

*** 659,10 ***
--- 662,13 ---
      compile->remove_skeleton_predicate_opaq(this);
    }
    if (for_post_loop_opts_igvn()) {
      compile->remove_from_post_loop_opts_igvn(this);
    }
+   if (is_InlineTypeBase()) {
+     compile->remove_inline_type(this);
+   }
  
    if (is_SafePoint()) {
      as_SafePoint()->delete_replaced_nodes();
    }
    BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2();

*** 2197,13 ***
        for( j = 0; j < len(); j++ ) {
          if( in(j) == n ) cnt--;
        }
        assert( cnt == 0,"Mismatched edge count.");
      } else if (n == NULL) {
!       assert(i >= req() || i == 0 || is_Region() || is_Phi() || is_ArrayCopy() || (is_Unlock() && i == req()-1)
                || (is_MemBar() && i == 5), // the precedence edge to a membar can be removed during macro node expansion
!               "only region, phi, arraycopy, unlock or membar nodes have null data edges");
      } else {
        assert(n->is_top(), "sanity");
        // Nothing to check.
      }
    }
--- 2203,15 ---
        for( j = 0; j < len(); j++ ) {
          if( in(j) == n ) cnt--;
        }
        assert( cnt == 0,"Mismatched edge count.");
      } else if (n == NULL) {
!       assert(i >= req() || i == 0 || is_Region() || is_Phi() || is_ArrayCopy() ||
+              (is_Allocate() && i >= AllocateNode::InlineTypeNode) ||
+              (is_Unlock() && i == req()-1)
                || (is_MemBar() && i == 5), // the precedence edge to a membar can be removed during macro node expansion
!              "only region, phi, arraycopy, allocate or unlock nodes have null data edges");
      } else {
        assert(n->is_top(), "sanity");
        // Nothing to check.
      }
    }
< prev index next >