< 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 >