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

@ -289,13 +289,15 @@ public:
_has_sfpt:1, // True if has non-call safepoint
_rce_candidate:1; // True if candidate for range check elimination
Node_List* _required_safept; // A inner loop cannot delete these safepts;
Node_List* _required_safept; // A inner loop cannot delete these safepts;
bool _allow_optimizations; // Allow loop optimizations
IdealLoopTree( PhaseIdealLoop* phase, Node *head, Node *tail )
: _parent(0), _next(0), _child(0),
_head(head), _tail(tail),
_phase(phase),
_required_safept(NULL),
_allow_optimizations(true),
_nest(0), _irreducible(0), _has_call(0), _has_sfpt(0), _rce_candidate(0)
{ }