src/share/vm/opto/node.cpp

changeset 8285
535618ab1c04
parent 8196
7c5babab479b
child 8504
a96cf90239c6
equal deleted inserted replaced
8282:16f7b676725a 8285:535618ab1c04
519 } 519 }
520 if (is_macro()) 520 if (is_macro())
521 C->add_macro_node(n); 521 C->add_macro_node(n);
522 if (is_expensive()) 522 if (is_expensive())
523 C->add_expensive_node(n); 523 C->add_expensive_node(n);
524 // If the cloned node is a range check dependent CastII, add it to the list.
525 CastIINode* cast = n->isa_CastII();
526 if (cast != NULL && cast->has_range_check()) {
527 C->add_range_check_cast(cast);
528 }
524 529
525 n->set_idx(C->next_unique()); // Get new unique index as well 530 n->set_idx(C->next_unique()); // Get new unique index as well
526 debug_only( n->verify_construction() ); 531 debug_only( n->verify_construction() );
527 NOT_PRODUCT(nodes_created++); 532 NOT_PRODUCT(nodes_created++);
528 // Do not patch over the debug_idx of a clone, because it makes it 533 // Do not patch over the debug_idx of a clone, because it makes it
647 compile->remove_macro_node(this); 652 compile->remove_macro_node(this);
648 } 653 }
649 if (is_expensive()) { 654 if (is_expensive()) {
650 compile->remove_expensive_node(this); 655 compile->remove_expensive_node(this);
651 } 656 }
657 CastIINode* cast = isa_CastII();
658 if (cast != NULL && cast->has_range_check()) {
659 compile->remove_range_check_cast(cast);
660 }
661
652 if (is_SafePoint()) { 662 if (is_SafePoint()) {
653 as_SafePoint()->delete_replaced_nodes(); 663 as_SafePoint()->delete_replaced_nodes();
654 } 664 }
655 #ifdef ASSERT 665 #ifdef ASSERT
656 // We will not actually delete the storage, but we'll make the node unusable. 666 // We will not actually delete the storage, but we'll make the node unusable.
1342 igvn->C->remove_macro_node(dead); 1352 igvn->C->remove_macro_node(dead);
1343 } 1353 }
1344 if (dead->is_expensive()) { 1354 if (dead->is_expensive()) {
1345 igvn->C->remove_expensive_node(dead); 1355 igvn->C->remove_expensive_node(dead);
1346 } 1356 }
1357 CastIINode* cast = dead->isa_CastII();
1358 if (cast != NULL && cast->has_range_check()) {
1359 igvn->C->remove_range_check_cast(cast);
1360 }
1347 igvn->C->record_dead_node(dead->_idx); 1361 igvn->C->record_dead_node(dead->_idx);
1348 // Kill all inputs to the dead guy 1362 // Kill all inputs to the dead guy
1349 for (uint i=0; i < dead->req(); i++) { 1363 for (uint i=0; i < dead->req(); i++) {
1350 Node *n = dead->in(i); // Get input to dead guy 1364 Node *n = dead->in(i); // Get input to dead guy
1351 if (n != NULL && !n->is_top()) { // Input is valid? 1365 if (n != NULL && !n->is_top()) { // Input is valid?

mercurial