src/share/vm/opto/block.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/block.cpp	Mon Jan 12 16:05:13 2009
--- new/src/share/vm/opto/block.cpp	Mon Jan 12 16:05:13 2009

*** 892,907 **** --- 892,913 ---- n->as_Mach()->ideal_Opcode() == Op_CreateEx ) { assert( j == 1 || b->_nodes[j-1]->is_Phi(), "CreateEx must be first instruction in block" ); } for( uint k = 0; k < n->req(); k++ ) { ! Node *use = n->in(k); ! if( use && use != n ) { ! assert( _bbs[use->_idx] || use->is_Con(), ! Node *def = n->in(k); ! if( def && def != n ) { ! assert( _bbs[def->_idx] || def->is_Con(), "must have block; constants for debug info ok" ); + 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" ); } } + } } j = b->end_idx(); Node *bp = (Node*)b->_nodes[b->_nodes.size()-1]->is_block_proj(); assert( bp, "last instruction must be a block proj" );

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