--- old/src/hotspot/share/opto/loopTransform.cpp 2019-08-21 16:33:55.327800773 +0800 +++ new/src/hotspot/share/opto/loopTransform.cpp 2019-08-21 16:33:55.215798859 +0800 @@ -831,6 +831,15 @@ return false; } + // Protect against over-unrolling with SuperWordLoopUnrollAnalysis. + if (SuperWordLoopUnrollAnalysis && + !cl->is_vectorized_loop() && + future_unroll_cnt > LoopUnrollMin && + cl->profile_trip_cnt() != COUNT_UNKNOWN && + (uint)(2 * cl->unrolled_count()) > cl->trip_count()) { + return false; + } + Node *init_n = cl->init_trip(); Node *limit_n = cl->limit(); int stride_con = cl->stride_con();