+2019-05-02 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/89653
+ * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
+ update-address-taken before the pass.
+ * passes.def (pass_tree_loop_init): Put comment before it.
+
2019-05-02 Richard Biener <rguenther@suse.de>
PR tree-optimization/89509
NEXT_PASS (pass_fix_loops);
NEXT_PASS (pass_tree_loop);
PUSH_INSERT_PASSES_WITHIN (pass_tree_loop)
+ /* Before loop_init we rewrite no longer addressed locals into SSA
+ form if possible. */
NEXT_PASS (pass_tree_loop_init);
NEXT_PASS (pass_tree_unswitch);
NEXT_PASS (pass_scev_cprop);
+2019-05-02 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/89653
+ * g++.dg/vect/pr89653.cc: New testcase.
+
2019-05-02 Richard Biener <rguenther@suse.de>
PR tree-optimization/89509
--- /dev/null
+// { dg-do compile }
+// { dg-require-effective-target vect_double }
+
+#include <algorithm>
+
+void loop1(double * const __restrict__ vec, double x, int end)
+{
+ for (int i = 0; i < end; ++i)
+ vec[i] = std::min(vec[i], vec[i]/x);
+}
+
+// { dg-final { scan-tree-dump "vectorized 1 loops" "vect" } }
PROP_cfg, /* properties_required */
0, /* properties_provided */
0, /* properties_destroyed */
- 0, /* todo_flags_start */
+ TODO_update_address_taken, /* todo_flags_start */
0, /* todo_flags_finish */
};