< prev index next >
src/share/vm/opto/loopnode.cpp
Print this page
@@ -2315,11 +2315,15 @@
if (ReassociateInvariants) {
// Reassociate invariants and prep for split_thru_phi
for (LoopTreeIterator iter(_ltree_root); !iter.done(); iter.next()) {
IdealLoopTree* lpt = iter.current();
- if (!lpt->is_counted() || !lpt->is_inner()) continue;
+ bool is_counted = lpt->is_counted();
+ if (!is_counted || !lpt->is_inner()) continue;
+
+ // check for vectorized loops, any reassociation of invariants was already done
+ if (is_counted && lpt->_head->as_CountedLoop()->ignore_slp()) continue;
lpt->reassociate_invariants(this);
// Because RCE opportunities can be masked by split_thru_phi,
// look for RCE candidates and inhibit split_thru_phi
< prev index next >