+2016-10-13 Bin Cheng <bin.cheng@arm.com>
+
+ * tree-predcom.c (tree_predictive_commoning_loop): Skip loop that only
+ iterates 1 time.
+
2016-10-13 Bin Cheng <bin.cheng@arm.com>
* tree-vect-loop-manip.c (adjust_vec_debug_stmts): Don't release
+2016-10-13 Bin Cheng <bin.cheng@arm.com>
+
+ * gfortran.dg/vect/fast-math-mgrid-resid.f: New test string.
+
2016-10-13 Bin Cheng <bin.cheng@arm.com>
* gcc.dg/vect/vect-98.c: Refine test case.
! { dg-final { scan-tree-dump-times "Executing predictive commoning without unrolling" 1 "pcom" { target lp64 } } }
! { dg-final { scan-tree-dump-times "Executing predictive commoning without unrolling" 2 "pcom" { target ia32 } } }
! { dg-final { scan-tree-dump-times "Predictive commoning failed: no suitable chains" 0 "pcom" } }
+! { dg-final { scan-tree-dump-times "Loop iterates only 1 time, nothing to do" 1 "pcom" } }
if (dump_file && (dump_flags & TDF_DETAILS))
fprintf (dump_file, "Processing loop %d\n", loop->num);
+ /* Nothing for predicitive commoning if loop only iterates 1 time. */
+ if (get_max_loop_iterations_int (loop) == 0)
+ {
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ fprintf (dump_file, "Loop iterates only 1 time, nothing to do.\n");
+
+ return false;
+ }
+
/* Find the data references and split them into components according to their
dependence relations. */
auto_vec<loop_p, 3> loop_nest;