Mercurial > hg > truffle
diff src/share/vm/opto/block.cpp @ 601:523ded093c31
6809798: SafePointScalarObject node placed into incorrect block during GCM
Summary: Replace the control edge of a pinned node before scheduling.
Reviewed-by: never
author | kvn |
---|---|
date | Thu, 26 Feb 2009 14:26:02 -0800 |
parents | 91263420e1c6 |
children | 98cb887364d3 |
line wrap: on
line diff
--- a/src/share/vm/opto/block.cpp Wed Feb 25 14:36:27 2009 -0800 +++ b/src/share/vm/opto/block.cpp Thu Feb 26 14:26:02 2009 -0800 @@ -909,6 +909,10 @@ !(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"); + } } } }