< prev index next >
src/share/vm/opto/loopUnswitch.cpp
Print this page
@@ -59,10 +59,16 @@
return false;
}
if (!_head->is_Loop()) {
return false;
}
+
+ // check for vectorized loops, any unswitching was already applied
+ if (_head->is_CountedLoop() && _head->as_CountedLoop()->ignore_slp()) {
+ return false;
+ }
+
int nodes_left = phase->C->max_node_limit() - phase->C->live_nodes();
if ((int)(2 * _body.size()) > nodes_left) {
return false; // Too speculative if running low on nodes.
}
LoopNode* head = _head->as_Loop();
< prev index next >