Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/node.cpp @ 23974:f13e777eb255
Merge with jdk8u111-b14
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Wed, 16 Nov 2016 12:32:54 -0800 |
parents | b5f3a471e646 a96cf90239c6 |
children |
comparison
equal
deleted
inserted
replaced
23792:3953f8820df8 | 23974:f13e777eb255 |
---|---|
527 } | 527 } |
528 if (is_macro()) | 528 if (is_macro()) |
529 C->add_macro_node(n); | 529 C->add_macro_node(n); |
530 if (is_expensive()) | 530 if (is_expensive()) |
531 C->add_expensive_node(n); | 531 C->add_expensive_node(n); |
532 // If the cloned node is a range check dependent CastII, add it to the list. | |
533 CastIINode* cast = n->isa_CastII(); | |
534 if (cast != NULL && cast->has_range_check()) { | |
535 C->add_range_check_cast(cast); | |
536 } | |
532 | 537 |
533 n->set_idx(C->next_unique()); // Get new unique index as well | 538 n->set_idx(C->next_unique()); // Get new unique index as well |
534 debug_only( n->verify_construction() ); | 539 debug_only( n->verify_construction() ); |
535 NOT_PRODUCT(nodes_created++); | 540 NOT_PRODUCT(nodes_created++); |
536 // Do not patch over the debug_idx of a clone, because it makes it | 541 // Do not patch over the debug_idx of a clone, because it makes it |
655 compile->remove_macro_node(this); | 660 compile->remove_macro_node(this); |
656 } | 661 } |
657 if (is_expensive()) { | 662 if (is_expensive()) { |
658 compile->remove_expensive_node(this); | 663 compile->remove_expensive_node(this); |
659 } | 664 } |
665 CastIINode* cast = isa_CastII(); | |
666 if (cast != NULL && cast->has_range_check()) { | |
667 compile->remove_range_check_cast(cast); | |
668 } | |
669 | |
660 if (is_SafePoint()) { | 670 if (is_SafePoint()) { |
661 as_SafePoint()->delete_replaced_nodes(); | 671 as_SafePoint()->delete_replaced_nodes(); |
662 } | 672 } |
663 #ifdef ASSERT | 673 #ifdef ASSERT |
664 // We will not actually delete the storage, but we'll make the node unusable. | 674 // We will not actually delete the storage, but we'll make the node unusable. |
1350 igvn->C->remove_macro_node(dead); | 1360 igvn->C->remove_macro_node(dead); |
1351 } | 1361 } |
1352 if (dead->is_expensive()) { | 1362 if (dead->is_expensive()) { |
1353 igvn->C->remove_expensive_node(dead); | 1363 igvn->C->remove_expensive_node(dead); |
1354 } | 1364 } |
1365 CastIINode* cast = dead->isa_CastII(); | |
1366 if (cast != NULL && cast->has_range_check()) { | |
1367 igvn->C->remove_range_check_cast(cast); | |
1368 } | |
1355 igvn->C->record_dead_node(dead->_idx); | 1369 igvn->C->record_dead_node(dead->_idx); |
1356 // Kill all inputs to the dead guy | 1370 // Kill all inputs to the dead guy |
1357 for (uint i=0; i < dead->req(); i++) { | 1371 for (uint i=0; i < dead->req(); i++) { |
1358 Node *n = dead->in(i); // Get input to dead guy | 1372 Node *n = dead->in(i); // Get input to dead guy |
1359 if (n != NULL && !n->is_top()) { // Input is valid? | 1373 if (n != NULL && !n->is_top()) { // Input is valid? |