Merge
authorkvn
Fri, 27 Oct 2017 08:55:32 +0000
changeset 47759 002df709f2f2
parent 47757 1821be9ca11b (current diff)
parent 47758 17676a23cf3f (diff)
child 47760 c15f15bcc23e
Merge
--- a/src/hotspot/share/opto/superword.cpp	Fri Oct 27 07:19:00 2017 +0000
+++ b/src/hotspot/share/opto/superword.cpp	Fri Oct 27 08:55:32 2017 +0000
@@ -2168,10 +2168,12 @@
   CountedLoopNode *cl = lpt()->_head->as_CountedLoop();
   Compile* C = _phase->C;
   if (_packset.length() == 0) {
-    // Instigate more unrolling for optimization when vectorization fails.
-    C->set_major_progress();
-    cl->set_notpassed_slp();
-    cl->mark_do_unroll_only();
+    if (cl->is_main_loop()) {
+      // Instigate more unrolling for optimization when vectorization fails.
+      C->set_major_progress();
+      cl->set_notpassed_slp();
+      cl->mark_do_unroll_only();
+    }
     return;
   }
 
@@ -2417,6 +2419,9 @@
   }//for (int i = 0; i < _block.length(); i++)
 
   C->set_max_vector_size(max_vlen_in_bytes);
+  if (max_vlen_in_bytes > 0) {
+    cl->mark_loop_vectorized();
+  }
 
   if (SuperWordLoopUnrollAnalysis) {
     if (cl->has_passed_slp()) {
@@ -2439,7 +2444,6 @@
         }
 
         if (do_reserve_copy()) {
-          cl->mark_loop_vectorized();
           if (can_process_post_loop) {
             // Now create the difference of trip and limit and use it as our mask index.
             // Note: We limited the unroll of the vectorized loop so that