src/share/vm/opto/block.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6851386 Cdiff src/share/vm/opto/block.cpp

src/share/vm/opto/block.cpp

Print this page

        

*** 908,919 **** // when CreateEx node is moved in build_ifg_physical(). if( _bbs[def->_idx] == b && !(b->head()->is_Loop() && n->is_Phi()) && // See (+++) comment in reg_split.cpp !(n->jvms() != NULL && n->jvms()->is_monitor_use(k)) ) { ! assert( b->find_node(def) < j, "uses must follow definitions" ); } if( def->is_SafePointScalarObject() ) { assert(_bbs[def->_idx] == b, "SafePointScalarObject Node should be at the same block as its SafePoint node"); assert(_bbs[def->_idx] == _bbs[def->in(0)->_idx], "SafePointScalarObject Node should be at the same block as its control edge"); } } --- 908,928 ---- // when CreateEx node is moved in build_ifg_physical(). if( _bbs[def->_idx] == b && !(b->head()->is_Loop() && n->is_Phi()) && // See (+++) comment in reg_split.cpp !(n->jvms() != NULL && n->jvms()->is_monitor_use(k)) ) { ! bool is_loop = false; ! if (n->is_Phi()) { ! for( uint l = 0; l < def->req(); l++ ) { ! if (n == def->in(l)) { ! is_loop = true; ! break; // Some kind of loop } + } + } + assert( is_loop || b->find_node(def) < j, "uses must follow definitions" ); + } if( def->is_SafePointScalarObject() ) { assert(_bbs[def->_idx] == b, "SafePointScalarObject Node should be at the same block as its SafePoint node"); assert(_bbs[def->_idx] == _bbs[def->in(0)->_idx], "SafePointScalarObject Node should be at the same block as its control edge"); } }
src/share/vm/opto/block.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File