diff options
author | Timothy Arceri <[email protected]> | 2018-07-07 12:02:08 +1000 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2018-08-29 16:02:05 +1000 |
commit | fef6325e587173f2146a8aab75847144d2f802ff (patch) | |
tree | 2f86555431047c9a680945d573f76f1699009cb0 /src/compiler | |
parent | 1e40f6948310be07abb2d0198e6602769892cdac (diff) |
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 <[email protected]>
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/nir/nir_loop_analyze.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/compiler/nir/nir_loop_analyze.c b/src/compiler/nir/nir_loop_analyze.c index d564296aa67..5454b7691ba 100644 --- a/src/compiler/nir/nir_loop_analyze.c +++ b/src/compiler/nir/nir_loop_analyze.c @@ -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); |