Mercurial > hg > truffle
comparison 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 |
comparison
equal
deleted
inserted
replaced
600:07d449658fc7 | 601:523ded093c31 |
---|---|
907 !(b->head()->is_Loop() && n->is_Phi()) && | 907 !(b->head()->is_Loop() && n->is_Phi()) && |
908 // See (+++) comment in reg_split.cpp | 908 // See (+++) comment in reg_split.cpp |
909 !(n->jvms() != NULL && n->jvms()->is_monitor_use(k)) ) { | 909 !(n->jvms() != NULL && n->jvms()->is_monitor_use(k)) ) { |
910 assert( b->find_node(def) < j, "uses must follow definitions" ); | 910 assert( b->find_node(def) < j, "uses must follow definitions" ); |
911 } | 911 } |
912 if( def->is_SafePointScalarObject() ) { | |
913 assert(_bbs[def->_idx] == b, "SafePointScalarObject Node should be at the same block as its SafePoint node"); | |
914 assert(_bbs[def->_idx] == _bbs[def->in(0)->_idx], "SafePointScalarObject Node should be at the same block as its control edge"); | |
915 } | |
912 } | 916 } |
913 } | 917 } |
914 } | 918 } |
915 | 919 |
916 j = b->end_idx(); | 920 j = b->end_idx(); |