6667612: (Escape Analysis) disable loop cloning if it has a scalar replaceable allocation

Cloning an allocation will not allow scalar replacement since memory operations could not be associated with one allocation.

Reviewed-by: rasbold
This commit is contained in:
Vladimir Kozlov 2008-03-06 10:53:33 -08:00
parent bf7f5e1887
commit 277c3322f6
6 changed files with 20 additions and 3 deletions

View file

@ -1714,6 +1714,7 @@ void IdealLoopTree::iteration_split( PhaseIdealLoop *phase, Node_List &old_new )
// Gate unrolling, RCE and peeling efforts.
if( !_child && // If not an inner loop, do not split
!_irreducible &&
_allow_optimizations &&
!tail()->is_top() ) { // Also ignore the occasional dead backedge
if (!_has_call) {
iteration_split_impl( phase, old_new );