re PR tree-optimization/88044 (gfortran.dg/transfer_intrinsic_3.f90 hangs after r266171)

PR tree-optimization/88044
	* tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
	is false in the first iteration, but !every_iteration, return false
	instead of true with niter->niter zero.

From-SVN: r268143
This commit is contained in:
Jakub Jelinek 2019-01-22 10:58:23 +01:00 committed by Jakub Jelinek
parent 4293cd6ed8
commit 9a6585859f
2 changed files with 7 additions and 0 deletions

View File

@ -1,5 +1,10 @@
2019-01-22 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/88044
* tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
is false in the first iteration, but !every_iteration, return false
instead of true with niter->niter zero.
PR rtl-optimization/88904
* cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
any nonequal registers before processing BB_END (b).

View File

@ -1824,6 +1824,8 @@ number_of_iterations_cond (struct loop *loop,
tree tem = fold_binary (code, boolean_type_node, iv0->base, iv1->base);
if (tem && integer_zerop (tem))
{
if (!every_iteration)
return false;
niter->niter = build_int_cst (unsigned_type_for (type), 0);
niter->max = 0;
return true;