comparison src/share/vm/opto/loopopts.cpp @ 17978:ad51f24671c2

8046275: Fastdebug build failing on jdk9/hs/ control jobs after pulling some hs-comp changes Summary: Add missing check for Opaque nodes from loop predicates in clone_loop(). Reviewed-by: iveresov
author kvn
date Mon, 09 Jun 2014 15:42:31 -0700
parents cd3c534f8f4a
children 4077c61b03a0
comparison
equal deleted inserted replaced
17977:0b9500028980 17978:ad51f24671c2
1399 // If the Data use is an IF, that means we have an IF outside of the 1399 // If the Data use is an IF, that means we have an IF outside of the
1400 // loop that is switching on a condition that is set inside of the 1400 // loop that is switching on a condition that is set inside of the
1401 // loop. Happens if people set a loop-exit flag; then test the flag 1401 // loop. Happens if people set a loop-exit flag; then test the flag
1402 // in the loop to break the loop, then test is again outside of the 1402 // in the loop to break the loop, then test is again outside of the
1403 // loop to determine which way the loop exited. 1403 // loop to determine which way the loop exited.
1404 if( use->is_If() || use->is_CMove() ) { 1404 // Loop predicate If node connects to Bool node through Opaque1 node.
1405 if (use->is_If() || use->is_CMove() || C->is_predicate_opaq(use)) {
1405 // Since this code is highly unlikely, we lazily build the worklist 1406 // Since this code is highly unlikely, we lazily build the worklist
1406 // of such Nodes to go split. 1407 // of such Nodes to go split.
1407 if( !split_if_set ) 1408 if( !split_if_set )
1408 split_if_set = new Node_List(area); 1409 split_if_set = new Node_List(area);
1409 split_if_set->push(use); 1410 split_if_set->push(use);