Commit 8964432a by Richard Biener Committed by Richard Biener

re PR tree-optimization/89653 (Missing vectorization of loop containing…

re PR tree-optimization/89653 (Missing vectorization of loop containing std::min/std::max and temporary)

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.

	* g++.dg/vect/pr89653.cc: New testcase.

From-SVN: r270800
parent 420ee75d
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
* tree-ssa-structalias.c (compute_dependence_clique): Look
at the first subvar when determining whether it is restrict.
......
......@@ -255,6 +255,8 @@ along with GCC; see the file COPYING3. If not see
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
* gcc.dg/torture/restrict-8.c: New testcase.
......
// { 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" } }
......@@ -330,7 +330,7 @@ const pass_data pass_data_tree_loop_init =
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 */
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment