nir: always attempt to find loop terminators

This will help later patches with unrolling loops that end with a
break i.e. loops the always exit on their first interation.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Timothy Arceri 2018-07-07 12:02:08 +10:00
parent 1e40f69483
commit fef6325e58
1 changed files with 7 additions and 7 deletions

View File

@ -717,13 +717,6 @@ get_loop_info(loop_info_state *state, nir_function_impl *impl)
}
}
/* Induction analysis needs invariance information so get that first */
compute_invariance_information(state);
/* We have invariance information so try to find induction variables */
if (!compute_induction_information(state))
return;
/* Try to find all simple terminators of the loop. If we can't find any,
* or we find possible terminators that have side effects then bail.
*/
@ -737,6 +730,13 @@ get_loop_info(loop_info_state *state, nir_function_impl *impl)
return;
}
/* Induction analysis needs invariance information so get that first */
compute_invariance_information(state);
/* We have invariance information so try to find induction variables */
if (!compute_induction_information(state))
return;
/* Run through each of the terminators and try to compute a trip-count */
find_trip_count(state);