Commit 46bd784b by Jeff Law Committed by Jeff Law

[PR tree-optimization/68599] Avoid over-zealous optimization with -funsafe-loop-optimizations

	PR tree-optimization/68599
	* loop-init.c (rtl_loop_init): Set LOOPS_HAVE_RECORDED_EXITS
	in call to loop_optimizer_init.
	* loop-iv.c (get_simple_loop_desc): Only allow unsafe loop
	optimization to drop the assumptions/infinite notations if
	the loop has a single exit.

From-SVN: r231231
parent a54a5997
2015-12-03 Jeff Law <law@redhat.com>
PR tree-optimization/68599
* loop-init.c (rtl_loop_init): Set LOOPS_HAVE_RECORDED_EXITS
in call to loop_optimizer_init.
* loop-iv.c (get_simple_loop_desc): Only allow unsafe loop
optimization to drop the assumptions/infinite notations if
the loop has a single exit.
2015-12-03 Richard Sandiford <richard.sandiford@arm.com> 2015-12-03 Richard Sandiford <richard.sandiford@arm.com>
* doc/md.texi (vec_load_lanes@var{m}@var{n}): Document that * doc/md.texi (vec_load_lanes@var{m}@var{n}): Document that
...@@ -395,7 +395,7 @@ rtl_loop_init (void) ...@@ -395,7 +395,7 @@ rtl_loop_init (void)
dump_flow_info (dump_file, dump_flags); dump_flow_info (dump_file, dump_flags);
} }
loop_optimizer_init (LOOPS_NORMAL); loop_optimizer_init (LOOPS_NORMAL | LOOPS_HAVE_RECORDED_EXITS);
return 0; return 0;
} }
......
...@@ -3054,7 +3054,7 @@ get_simple_loop_desc (struct loop *loop) ...@@ -3054,7 +3054,7 @@ get_simple_loop_desc (struct loop *loop)
} }
} }
if (flag_unsafe_loop_optimizations) if (flag_unsafe_loop_optimizations && single_exit (loop))
{ {
desc->assumptions = NULL_RTX; desc->assumptions = NULL_RTX;
desc->infinite = NULL_RTX; desc->infinite = NULL_RTX;
......
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