< prev index next >

src/share/vm/opto/node.cpp

Print this page

        

@@ -502,10 +502,13 @@
   // If the cloned node is a range check dependent CastII, add it to the list.
   CastIINode* cast = n->isa_CastII();
   if (cast != NULL && cast->has_range_check()) {
     C->add_range_check_cast(cast);
   }
+  if (n->is_ValueTypePtr()) {
+    C->add_value_type_ptr(n->as_ValueTypePtr());
+  }
 
   n->set_idx(C->next_unique()); // Get new unique index as well
   debug_only( n->verify_construction() );
   NOT_PRODUCT(nodes_created++);
   // Do not patch over the debug_idx of a clone, because it makes it

@@ -610,10 +613,13 @@
   }
   CastIINode* cast = isa_CastII();
   if (cast != NULL && cast->has_range_check()) {
     compile->remove_range_check_cast(cast);
   }
+  if (is_ValueTypePtr()) {
+    compile->remove_value_type_ptr(as_ValueTypePtr());
+  }
 
   if (is_SafePoint()) {
     as_SafePoint()->delete_replaced_nodes();
   }
 #ifdef ASSERT

@@ -1350,10 +1356,13 @@
       }
       CastIINode* cast = dead->isa_CastII();
       if (cast != NULL && cast->has_range_check()) {
         igvn->C->remove_range_check_cast(cast);
       }
+      if (dead->is_ValueTypePtr()) {
+        igvn->C->remove_value_type_ptr(dead->as_ValueTypePtr());
+      }
       igvn->C->record_dead_node(dead->_idx);
       // Kill all inputs to the dead guy
       for (uint i=0; i < dead->req(); i++) {
         Node *n = dead->in(i);      // Get input to dead guy
         if (n != NULL && !n->is_top()) { // Input is valid?
< prev index next >